О FreeBSD
от Павла Кайгородова
Как большой поклонник этой системы не могу не влезть со своими
комментариями к Вашей статье.
Для начала о русификации:
Такой способ установки локали (то есть описанный мной - А.Ф.) уже устарел. Сейчас это рекомендуется делать путем задания пользователю соответствующего "login class". В файле /etc/login.conf содержится описание класса "russian". От класса "default" он отличается только установкой нужных переменных среды при входе в систему. Это удобно для использования на сервере -- можно разным пользователям назначать разные локали, не вмешиваясь в их файлы конфигурации (которые все равно можно использовать). К слову, в login.conf можно задавать ограничения по ресурсам для разных пользователей и другие параметры.
Для изменения класса пользователя можно воспользоваться
командой pw (как ее не хватает в Linux !):
pw usermod <username> -L russian
Кстати, для добавления пользователя в группу wheel более правильным будет такой способ :
pw usermod -G wheel
При этом не сменяется идентификатор группы в passwd, а просто
редактируется /etc/group на предмет добавления к группе wheel нужного юзера.
По поводу доинсталляции нужных компонент через sysinstall
Не обязательно каждый раз выбирать пункт "Express" или " Custom", для этого есть пункт "Configure". Тогда ничего лишнего устанавливаться не будет.
По поводу Fixit CD
Его обычно делают отдельным диском. На нем написано "Live filesystem", что означает возможность монтировать его в качестве "/". Это вполне полноценная стандартная инсталяция FreeBSD, содержащая все необходимое для работы. Мне приходилось самостоятельно собирать дистрибутивы FreeBSD (это не так сложно как кажется, там почти все автоматизировано с использованием Makefile). На починочный диск мне даже удавалось дополнительно упихать такие нужные вещи как bash, mc, lynx, joe (моя слабость ;), trafshow и еще что-то что я уже и не упомню. Вобщем получалась вполне себе нормальная система в которой можно работать. У меня FixitCD еще и грузился.
По поводу дистрибутивов в /usr/src
Если Вас интересует только ядро, можно ставить лишь дистрибутивы sys и include. Для сборки ядра их достаточно. Остальные s-дистрибутивы содержат в себе исходные коды ВСЕЙ системы (вплоть до компилятора и /bin/ls). Если Вы не собираетесь пересобирать систему целиком из исходников - это делается путем перехода в каталог /usr/src и подачей комманд
make buildworld
и
make installworld
то ставить их нет необходимости.
По поводу инсталляции при помощи системы ports
Так как в Вашей статье этот момент упущен, не могу удержаться и не описать этот весьма интересный процесс.
Для начала нужно убедиться в наличии каталога /usr/ports (со всем его содержимым). Если его нет, нужно поставить ports при помощи sysinstall. Нужно быть готовым к тому, что процесс распаковки ports пожрет много времени и ресурсов машины (этот каталог содержит тысячи подкаталогов и множество мелких файлов, а с мелкими файлами ufs работает ну... не очень быстро). Дальше сам процесс инсталляции.
Положим, нам нужно установить Midnight Commander. Переходим в каталог /usr/ports/misc/mc, даем команду make install. Все.
Произойдет следующее:
Система определит наличие архивов с исходными текстами в
/usr/ports/distfiles. Если их там нет (а можно и заранее положить), то она попробует скачать их, причем на каждый port имеется солидный список мест, где можно взять исходники. На худой конец они обязательно есть на ftp://ftp.freebsd.org/pub/FreeBSD/distfiles (или на ftp://ftp2.ru.freebsd.org/pub/FreeBSD/distfiles, где я их обычно и беру). Попутно будут скачаны нужные патчи и все остальное необходимое для сборки.
Затем обязательно будут проверены MD5-суммы для скачаных файлов, это не позволит (к примеру) подменить исходники на сайте. В случае несовпадения можно на свой страх и риск воспользоваться командой
make NO_CHECKSUM=YES install, но лучше скачать файлы из другого места.
После распаковки, на исходники автоматически будут наложены все нужные
патчи (в том числе и для беспроблемной сборки их под FreeBSD), вызваны все нужные скрипты конфигурации, make и прочее по необходимости. Затем
произойдет инсталяция и приложение будет зарегистрировано как обычный
пакет (его потом можно удалить, к примеру, командой pkg_delete).
Если для сборки пакета нужна инсталяция других пакетов, то это тоже будет произведено автоматически (через тот-же ports). По окончании процесса, можно избавиться от ненужных файлов командой make clean.
Если прямого выхода в Сеть нет, то файлы исходников можно скачать вручную. Для получения списка нужно дать команду "make fetch-list" или (чтобы включить все зависимости) "make fetch-recursive-list".
Если прямой выход есть, то открывается неплохая возможность держать
ports (как впрочем и все остальные исходники, ядра например) всегда в
актуальном состоянии при помощи системы cvsup. Если есть желание, могу
написать небольшую инструкцию.
И на последок об опции "SOFTUPDATES" в конфигурации ядра:
Это модификация кода UFS, ускоряющая (реально) ее работу и одновременно делающая файловую систему более устойчивой к сбоям (при пропадании питания, например). По причине наличия softupdates, в мире BSD нет такого ажиотажа вокруг журналируемых FS (без них вполне можно жить. Однако softupdates требует повышенного расхода памяти, поэтому по умолчанию оно не активизируется. Для реального включения softupdates на определенной файловой системе нужно дать команду:
tunefs -n enable <device>
где <device> - имя монтируемого устройства (во время подачи команды оно должно быть обязательно размонтировано). После очередного монтирования можно запустив команду mount, увидеть на каких FS включено softupdates.
Павел Кайгородов
Получено 2001-02-09
[Содержание]
©
Алексей Федорчук
http://onix.nm.ru