FreeBSD - статьи

         

FreeBSD 5.2. Первые впечатления


, UNIX4all

Обновления материалов Алексея Федорчука публикуются на http://unix.ginras.ru/freebsd/

Новая, уже третья по счету, версия 5-й ветки FreeBSD статуса стабильной пока так и не получила - этой чести, по имеющимся сведениям, удостоится только версия следующая. Тем не менее противопоказаний к ее использованию в десктопном варианте как будто бы не видно. Что я и решил проверить - благо, вследствие любезно предоставленного мне во временное пользование 80-гигабайтника мог безболезненно скинуть все данные и перекроить исторически сложившиеся схемы разбиения, включавшие сложно переплетенные тома LVM и Soft-RAID для Linux'а, и ccd-объединения для прежних FreeBSD.

Что нужно для знакомства с новой системой? Как минимум, ее дистрибутив. Конечно, при наличии загрузочной дискеты и приличного канала, всю FreeBSD, включая порты или пакеты по потребности, можно установить и прямо с серверов проекта. Которые - весьма многочисленны, некоторые - очень быстры (к сожалению, к российским зеркалам это не относится - по моим наблюдениям, максимальную скорость по ftp-протоколу обнаруживают норвежские серверы). Однако в домашних условиях этот способ неприемлем: хотя говорят, что поставить базовую систему (т.н. Distributions) вполне можно и по модему. Однако для таких необходимых пользователю портов, как Иксы, KDE или GNOME, OpenOffice и тому подобное, это будет несколько накладно и, мягко говоря, не очень быстро.

Итак, дистрибутив. В официальном исполнении, продаваемом многими онлайновыми магазинами России (и Украины), он включает три диска: 1-й, установочный, второй, несущий Live файловую систему (хотя и не являющийся LiveCD в понимании, привычном для пользователей современных Linux'ов), предназначен для аварийно-восстановительных работ, и третий - т.н. mini-инсталляционный.

Для установки FreeBSD достаточно одного диска из этого набора - 1-го или третьего. Различие между ними - в полноте комплектации. На mini-диске имеется только собственно система FreeBSD - та самая, которая охватывается понятием Distributions. То есть пользователь может установить с него полностью рабочую среду, включая все исходники и знаменитую систему портов. Однако пользовательских приложений, охватываемых последней, он без дополнительных усилий не получит - ни в бинарном виде, ни в виде исходников. Не будет у него "из коробки" и оконной системы X.


Полный установочный диск, кроме Distributions, включает в Иксы, которые, хотя и не являются неотъемлемой частью FreeBSD, могут быть установлены за один прием с Distributions. А также - некоторое количество дополнительных программ - т.н. Packages, - в прекомпилированном виде. Тут можно обнаружить интегрированную среду KDE (ее можно установить в полном и lite-вариантах), несколько оконных менеджеров, и весьма странную, на мой взгляд, подборку приложений (ИМХО, избыточную для сервера и явно недостаточную для десктопа).

Конечно, множество (а именно - более 8 тысяч) бинарных пакетов можно скачать с тех же серверов проекта FreeBSD, где лежат образы дисков. Однако это может оказаться еще более обременительным. Тем паче, что есть другая возможность: наш единственный и неповторимый Линуксшоп распространяет полную коллекцию пакетов FreeBSD (в настоящее время - только версии 5.2) на CD. Причем в двух вариантах - с установочным диском (mini-install) - для не имеющих дистрибутива Free вообще, - и без оного - для тех, кто уже успел приобрести официальный установочный набор.

Как станет ясным из дальнейшего, основное назначение коллекции packages - ознакомление со всевозможным открытым и свободным софтом, благо удаляются ненужные пакеты столь же быстро, как и устанавливаются (причем удаляются весьма чисто). И потому использование для установки мини-диска плюс набор пакетов видится предпочтительным.

Однако я несколько отвлекся - ведь система у нас еще не установлена. В принципе, об установке FreeBSD написано немало - этому посвящена и изрядная часть знаменитого FreeBSD Handbook, и специальное официальное руководство, и множество отдельных сетевых и бумажных заметок (см. Каталог BSD-ресурсов на этом сайте). Потому остановлюсь только на частных (но, на мой взгляд, существенных) моментах.

Для начала вспомним о широко распространенной легенде, будто бы во FreeBSD не все благополучно с поддержкой оборудования - как утверждается, хуже, чем в Linux'е. Это и верно, и не верно. Действительно, спектр формально поддерживаемого железа в Linux'е кажется шире. Однако все устройства, заслужившие звание мало-мальски стандартных, во FreeBSD поддерживаются. И, более того, если поддержка какого-либо оборудования в эту систему включена, то можно быть уверенным - выполнена она на уровне.



Правда, именно в отношении моего излюбленного примера в доказательство этого тезиса - касаемо аппаратных контроллеров ATA RAID, - текущая версия несколько подкачала. Мой размазанный по маме FastTrack 376, перед которым оказывались бессильными все Linux'ы (если не прибегать к злостному шаманизму), прекрасно опознавался всеми Free'ми 5-й ветки, начиная с developer'ских.

А потому, устанавливая 5.2, я не ждал подвоха. Более того, скинув данные и истребив все следы исторического развития, безбоязненно переключил один из дисков на разъем RAID-контроллера, включив в BIOS соответствующую опцию и скорфигурив квази-RAID псевдо-нулевого уровня.

И немедленно был наказан за свою самоуверенность: машина категорически отказывалась грузиться что с полного установочного диска Free, что с диска mini-install. Сразу же после обращения к CD идя на перезагрузку без выдачи каких-либо сообщений. На перебранных мной вариантах останавливаться не буду, сказав сразу: следствием было установлено, что лечится это только одним - выдергиванием шлейфа из RAID-разъема (или из соответствующего диска). При этом отключения контроллера в BIOS не требовалось, что внушало некоторые надежды.

И, опять забегая вперед, скажу, что надежды эти оправдались: будучи установленной, FreeBSD 5.2 прекрасно распознает диск на RAID-разъеме и без малейших проблем с ним общается. Так что отмеченную странность можно отнести к мелким (хотя и неприятным) глюкобагам. Возможно, относящимся только к конкретной реализации RAID-контроллера...

Более в ходе установки проблем у меня не возникло. В главном меню sysinstall (мы ведь помним, что это - универсальная "морда" для инсталляции системы и ее последующей конфигурации) выбираем пункт заказной установки (Custom). Здесь для начала, как и при установке любой иной ОС, создаем раздел для FreeBSD: он должен быть первичным, что во Free'шной терминологии именуется слайсом (slice). Делим его на логические разделы (partitions) для разных ветвей файловой системы. Обычно тут создаются партиции под корень и каталоги /usr, /var, /home, /tmp (в качестве последнего в дальнейшем можно будет задействовать файловую систему в оперативной памяти - mfs, аналог Linux'овой tmpfs).



Приятная новость на этой стадии - то, что в принципе можно отказаться от swap-партиций: последует предупреждение, но не сообщение об ошибке. Это показалось мне важным именно в контексте вышесказанного: после установки можно будет создать разделы под своппинг на винтах, подключенных к RAID-контроллеру.

По умолчанию на всех вновь новообразованны разделах создается новая система UFS2 (для всех ветвей, кроме корня, - с включением механизма Soft Updates). Отказываться от нее (а такая возможность имеется) оснований не вижу - как выяснилось, GRUB при соответствующем конфигурировании вполне справляется с загрузкой FreeBSD с такого раздела.

Далее отправляемся в пункт Distributions. Здесь никаких изменений я не обнаружил. Единственно, только укрепился в своем мнении, что на стадии начальной установки достаточно ограничиться минимальным комплектом (включающим Base и Security), после чего в пункте Custom добавить man-страницы (дабы не остаться без помощи в критический момент) и исходники (как минимум - ядра), а также дерево портов (обязательно - некоторых вещей нет даже в полной коллекции бинарников).

При наличии полного установочного диска на стадии Distributions можно также заказать установку XFree86 (версии 4.3). Причем пакетирована она так, что можно отказаться от установки ряда компонентов (типа сервера шрифтов, или там таких вещей, как Speedo-шрифты).

Тем не менее я Иксы при первичной инсталляции устанавливать бы не стал. Если нет желания/возможности собирать их из портов лучше воспользоваться Free'шными бинарниками непосредственно с www.xfree86.org - из них можно выкинуть еще больше. Или - попробовать поставить пре-релизный вариант версии 4.4. У меня поверх Free 5.2 работает именно он (впрочем, это совсем другая история).

На этом установка собственно системы заканчивается. Вернее, сама-то установка только и начинается - происходит разбиение дисков, создание и монтирование файловых систем, а потом - развертывание выбранных компонентов. Тут в очередной раз можно констатировать, что быстродействие файловой системы (даже в варианте UFS2) не входит в число многочисленных достоинств FreeBSD - процесс этот, связанный с копированием на диск большого количества мелких файлов, весьма зануден. Единственно, что с ним примиряет - можно действительно откинуться на спинку кресла. Или там, пивка выпить...



Теперь - постинсталляционное конфигурирование. В принципе от него можно отказаться, но - зачем? Ведь в итоге мы получим не только более-менее настроенную (причем вполне разумно), но и полностью русифицированную систему. Так что переходим в соответствующий пункт меню - и вперед, на Харьков.

Для начала, если мы имеем дело с полным вариантом инсталляционного диска, - доустановка пакетов. Здесь, как и при выборе компонентов Distributions, ни в коем случае не след увлекаться. И тому есть несколько резонов. Первый - бинарные пакеты по умолчанию могут потянуть за собой ряд необязательных (и, возможно, ненужных именно вам) зависимостей. Во-вторых, при этом могут устанавливаться не те версии пакетов, которые хотелось бы иметь. Чему примером - links, который ставится по умолчанию во 2-й своей ипостаси, тогда как я, скажем, предпочитаю 1-ю (то есть версии 0.9X). А в третьих, другие пакеты, напротив, могут оказаться функционально обрезанными. Так, бинарный Vim собран без поддержки langmap, так что в кириллическом окружении все равно потребует пересборки.

Короче говоря, это и есть те резоны, по которым я полагаю достаточным для установки mini-диск. Что же касается дополнительных пакетов - их можно устанавливать с дополнительных же дисков. Конечно, некоторые проблемы остаются и при этом. Однако по крайней мере в массиве коллекции packages можно выбрать подходящие версии нужных программ. Это касается не только links. Так, в составе packages доступны разрабатываемые (developer, но тем не менее вполне стабильные и функциональные) ветки многих пакетов.

Далее, можно поиграться со множеством софта самого разного назначения и выбрать подходящий инструментарий для решения собственных задач. Каковой в дальнейшем и пересобрать из портов с собственными настройками.

Впрочем, я опять отвлекся. Пока же от нас требуется закончить с первичными настройками. Из каковых первая - установка пароля для root и создание обычных пользователей. Первое - необходимо, а вот от второго я пока воздержался бы. Во-первых, предусмотренные sysinstall средства не позволяют определить для пользователя такой полезный атрибут, как класс (которого очень не хватает в Linux'е - во Free это самый простой способ установки локали и тому подобных переменных окружения, независимых от выбранного шелла). Во-вторых, пользователей лучше создавать после определения набора их профильных файлов. А последнее возможно только после установки дополнительных программ-оболочек - штатные из Distributions могут показаться либо непривычными (/bin/csh), либо убогими (/bin/sh). И в третьих - создать пользователей легко потом - либо с помощью программы adduser, в ходе первого запуска которой определяется общая схема заполнения учетной записи, либо универсальной утилитой pw, предоставляющей богатые возможности user-менеджмента.



Теперь - консоль. Здесь мы устанавливаем такие важные параметры, как экранный шрифт, раскладку клавиатуры, карту соответствия того и другого, тип терминала, а также мелочи - скринсейвер и Repeat (внятный русский перевод в голову не приходит, но - интуитивно ясно любому лазящему в старые BIOS'ы, не так ли?). Впрочем, последний параметр я зря отнес к маловажным - если не установить этот самый Repeat наFast, реактивность клавиатуры будет просто удручающей (ИМХО, разумеется),

Важные же параметры в кириллическом окружении фактически инвариантны: можно (и нужно) установить шрифт (font) номер 5 - IBM 866, раскладку (keymap) Russia KOI8-R, карту соответствия (Screenmap) KOI8-R to IBM866, увенчав все это типом терминала cons25r. Объяснение причин этому далеко выходит за рамки этой заметки. Для Фом (или Фомов) неверующих добавлю только, что иначе пресловутой русификации консоли "из коробки" вы не получите. А в предложенном варианте - сразу по завершении установки и перезагрузки весь "велик мАгучем русскам языка" к вашим услугам...

Правда, "коробочный" вариант русификации может удовлетворить только человека, работающего в консоли лишь эпизодически. Во-первых, умолчальная русская раскладка, мягко говоря, несколько странна (типа инвертированной старой DOS-раскладки, с числами на верхнем регистре и знаками препинания - на нижнем: теоретически, конечно, удобно, но практически - "досок" с такой маркировкой мне что-то и в старое время не встречалось, разве что самому наклеивать).

Во-вторых, умолчальный экранный шрифт весьма далек от совершенства (это если не сказать худого слова - мое эстетическое чувство он просто оскорбляет).

Ну и в третьих, "коробочная" русификация предполагает единственно работу с кодировкой KOI8 "внутре" и для ввода при экранном выводе в cp866. Конечно, теоретически можно выбрать и раскладку (=внутреннюю кодировку) cp1251, однако в этом случае соответствующую screenmap (а в штатном комплекте ее нет) вам придется прикручивать самостоятельно. Или - шрифт для экранного вывода (хотя нет ничего более уродливого, чем псевдографические программы в кодировке cp1251).



Все отмеченные шероховатости коробочной русификации легко исправимы - не напильником даже, а алмазным надфилем (или очень мягкой шкуркой). Для вывода я ранее использовал линуксовые шрифты, конвертированные в raw-формат. Однако нынче есть лучшая альтернатива - пакет terminus-fonts, генерирующий прекрасные raw-шрифты для разных кодировок, в том числе и для KOI8 (что позволяет отказаться от screenmap вообще).

Что же касается клавиатурных раскладок - то формат их файлов столь прозрачен, что его легко поправить в соответствие со своими привычками.Если же лениво - знайте, что такая работа уже проделана, и результаты ее есть на последнем (8-м или, соответственно, 9-м) диске Линуксшоповского набора (вместе со всеми доступными raw-шрифтами).

Что же касается прикручивания к Free'шной консоли UTF-8, то такого опыта пока не имею. Так как полагаю эту кодировку светлым будущим всего человечества (столь же реальным, как коммунизм, обещанный дорогим Никитой Сергеевичем к 1980 году).

В общем, цели русификации ясны, задачи ее - определены, за работу, товарищи. А мы пока переходим к установке часового пояса. Здесь настоятельная рекомендация - ответить, вопреки умолчанию, положительно на вопрос о установке системных часов на UTC (разумеется, предварительно проделав эту процедуру в BIOS). В дальнейшем это позволит с помощью пары-тройки несложных телодвижений создать службу точного времени на одной отдельно взятой машине (подключенной к Сети любым способом, хоть модемом).

Далее - мышь. Для COM- или PS/2-моделей требуется: а) сделать ее enable, б) определить протокол и в) порт подключения. Для USB-мышей достаточно первого пункта - и пусть вас не смущает то, что курсор мыши при этом не появляется: после перезагрузки она будет функционировать более чем справно, проверено на опыте.

Настройка Сети - вопрос совершенно отдельный (и частично рассмотренный ранее). Здесь же замечу, что никаких трудностей ни с модемным подключением, ни с локальной сетью не предвидится (при условии поддержки железа - счастливые обладатели win-модемов, не говорите, что вас не предупреждали).



Вопрос Security - замнем для ясности (умолчальной в случае десктопа более чем достаточно). А в отношении стартовых сервисов (Startup) вполне можно положиться на умолчания - единственно, для десктопа я отключил бы поддержку пользовательских квот.

Вот, собственно, и все. Можно перезагружаться и наслаждаться новой системой. Конечно, для полного счастья потребуется доустановить кое-какие программы, кое-что подрихтовать, кое-что поднастроить. Однако это - темы для специальных бесед.

Тут внимательный читатель (вернее, зритель настроечного меню sysinstall) вправе обратиться ко мне с вопросом - а как же Иксы, неужели их нельзя настроить? Можно, отвечу я, да вот только - нужно ли? Думаю, мое мнение ясно из вышесказанного. Тем не менее. пару слов скажу.

Для настройки Иксов в sysinstall не стали придумывать ничего специфичного - этой цели служат стандартные (для XFree86) утилиты xf86config (текстовая, в диалоговом режиме) и xf86cfg (графическая). О первой говорить особенно нечего (кто же не знает старика Крупского?). А второй я по старой памяти избегаю - в прежние времена она неизбежно приводила к мертвому зависанию машины (нынче, правда, говорят, работает).

После настройки Иксов можно еще и определить оконный менеджер по умолчанию. Например, KDE. Тут только нужно иметь в виду следующее. При инсталляции с полного диска KDE можно установить из пакетов в минимальной комплектации (arts, kdelibs, kdebase). Однако если мы определяем его как десктоп по умолчанию, это неотвратимо влечет за собой установку всякого прочего kde*.