|
2004 г
Проект Русской Документации FreeBSD
содержание
Бинарная совместимость с Linux не включена по умолчанию. Простейший способ включения
этой функциональности заключается в загрузке KLD объекта linux
(``Kernel LoaDable object''). Вы можете загрузить этот модуль, просто набрав linux в командной строке.
Если вы хотите, чтобы совместимость с Linux была включена постоянно, необходимо
добавить в /etc/rc.conf следующую строку:
linux_enable="YES"
Для проверки того, загружен ли KLD, может быть использована команда kldstat(8):
% kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.ko
Если по какой-либо причине вы не хотите или не можете загрузить KLD, то вы можете
статически включить поддержку Linux в ядро посредством опции options
COMPAT_LINUX в файле конфигурации ядра. Затем соберите и проинсталлируйте новое
ядро, следуя описанию в Гл. 8.
Установить все требуемые библиотеки можно двумя путями: либо используя порт linux_base, либо установив их вручную.
Этот метод является самым простым, и мы рекомендуем воспользоваться именно им. Процесс
аналогичен установке любого другого порта из коллекции портов. Просто выполните следующие команды:
# cd /usr/ports/emulators/linux_base
# make install distclean
Теперь Вы можете работать с приложениями для Linux. Некоторые программы, возможно,
будут сообщать о несоответствии подверсий некоторых системных библиотек. Однако,
практически, это не вызывает каких-либо неудобств.
Замечание: Возможно наличие нескольких версий порта emulators/linux_base, соответствующих различным версиям разных
дистрибутивов Linux. Вы должны установить порт, наиболее близко соответствующий
требованиям приложений Linux, которые будут установлены.
Если у вас нет установленной коллекции портов, можно установить требуемые библиотеки
вручную. Вам понадобятся разделяемые библиотеки для Linux, которые нужны программам, и
runtime-компоновщик. Вам также потребуется создать ``теневой корень'': директорию /compat/linux, где будут расположены Linux библиотеки. Если нужно
загрузить какую-либо разделяемую библиотеку, FreeBSD сперва будет пытаться найти ее в
этом дереве. Так, если программа загружает, например, /lib/libc.so, FreeBSD попытается открыть /compat/linux/lib/libc.so, и если такого файла не существует, будет
пытаться открыть /lib/libc.so. Разделяемые библиотеки должны
находиться в теневом дереве, а не в пути, сообщаемым командой Linux ld.so.
По мере работы с различными Linux программами, у вас будет накапливаться некий базовый
набор библиотек, которого будет достаточно для большинства существующих Linux
приложений.
Что, если при установленном linux_base порте ваше приложение
все равно сообщает об отсутствии необходимой библиотеки? Как узнать, какая именно нужна
библиотека и где ее взять? В принципе, есть два способа. Вам необходимо иметь привилегии
суперпользователя для их осуществления.
Если у вас есть доступ к машине, на которой установлен Linux, узнайте, какие
библиотеки использует Linux приложение, и просто скопируйте из на свою машину.
Например:
Для ELF программ иногда требуется сделать так называемый ``branding''. Если при
попытке запустить ELF-файл, Вы получаете следующее сообщение об ошибке:
% ./linux-elf-программа
ELF binary type not known
Abort
то нужно изменить тип исполняемого файла, чтобы ядро FreeBSD правильно определило, что
это Linux программа. Это можно сделать при помощи утилиты brandelf(1):
% brandelf -t Linux linux-elf-программа
В настоящее время GNU toolchain помещает необходимую информацию в исполняемые файлы
ELF автоматически, поэтому необходимость в этом действии случается все реже и реже, и в
недалеком будущем вы вряд ли прибегнете к нему вообще.
Если DNS не настроен или недоступен, или вы получаете это сообщение:
resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keyword
то вам нужно создать (модифицировать) файл /compat/linux/etc/host.conf, содержащий:
order hosts, bind
multi on
Таким образом, вы указываете, то сначала производится поиск в файле /etc/hosts, а только затем запрашивается DNS. Когда файл /compat/linux/etc/host.conf отсутствует, Linux приложения находят
файл /etc/host.conf для FreeBSD и сообщают о несовместимом
синтаксисе. Если вы не настраивали сервер имен (/etc/resolv.conf), уберите bind из файла
/compat/linux/etc/host.conf.
|
 |
 |
|
Новости мира IT:
- 02.02 - Apple задумала выпустить iPhone в формате «раскладушки»
- 02.02 - Соцсети вскоре столкнутся с массовыми набегами ИИ-агентов, предупредили учёные
- 02.02 - Обещанная Павлом Дуровым интеграция Grok c Telegram до сих пор не случилась и, похоже, уже никогда не случится
- 02.02 - Запустилась соцсеть Moltbook, где общаются только ИИ-агенты — людям разрешили только наблюдать
- 29.01 - Линус Торвальдс принял план передачи управления репозиторием ядра Linux в непредвиденных ситуациях
- 29.01 - ИИ-стартап Илона Маска xAI получит $2 млрд от Tesla до конца марта
- 29.01 - Бигтехи снова забрасывают OpenAI деньгами — Nvidia, Microsoft и Amazon обсуждают инвестиции на $60 млрд
- 29.01 - Samsung утроила квартальную прибыль до рекордных $14 млрд, но по итогам года впервые уступила SK hynix
- 29.01 - Google заплатит $135 млн за тайный сбор данных пользователей Android и больше не будет «шпионить» без спроса
- 26.01 - Представлен смартфон NexPhone, совмещающий Android, Debian и Windows
- 26.01 - Российская команда Parivision сенсационно выиграла первый крупный турнир года по Counter-Strike 2
- 26.01 - Стоимость акций Sandisk неожиданно взлетела на 1000 % всего за несколько месяцев
- 26.01 - Россияне столкнулись с массовым сбоем сервисов, позволявших обходить ограничения мобильного интернета
- 20.01 - Организация Open Quantum Design работает над проектом по созданию открытого квантового компьютера
- 20.01 - Роскомнадзор заявил об удвоении количества DDoS-атак в 2025 году
- 20.01 - В Яндекс Картах теперь можно делиться геопозицией с близкими
- 20.01 - OpenAI пообещала практический ИИ уже в этом году — и похвалилась выручкой в $20 млрд за прошлый
- 20.01 - Роскомнадзор разогнал блокировки на 59 % в прошлом году — под запрет попали 1,3 млн материалов
- 14.01 - Компания Anthropic выделила 1.5 млн долларов проекту Python
- 14.01 - Состоялся релиз Firefox 147
Архив новостей
|
 |
 |
 |
|
|
 |
 |
 |
|
|
|
 |
 |
|