PC-BSD: вхождение в берклианскую тему

Алексей Федорчук
12 мая 2005 г

Рискну предположить, что большинство пользователей BSD-систем приходят из Linux-мира. И не из последних причин к тому являются запутанные лабиринты дистрибутивов последней, многообразие схем инициализации, масса дистрибутив-специфичных средств настройки и, наконец, обилие инструментов пакетного менеджмента. После чего BSD-мир выглядит простым и понятным, что поневоле возникает вопрос: а почему бы мне было не начать знакомство с POSIX-системами именно с FreeBSD?
Тем не менее, мало кто рискнет предложить FreeBSD (и, тем более, Net- или OpenBSD) в качестве первой системы для совсем уж начинающего пользователя. И причин к тому две: не вполне интуитивно понятный инсталлятор (sysinstall) и непривычная схема разметки диска.

Ни то, ни другое не являют собой непреодолимого рубежа на пути в BSD-мир. Но — если бы пользователь двигался туда с нулевой отметки; то есть не имея представления о компьютерах и операционках вообще. Или — если бы его знакомство с последними ограничивалось «черным DOS’ом». Но вся беда в том, что к первой инсталляции FreeBSD пользователь подходит, получив некий опыт работы в Windows (вполне достаточный, чтобы привить стойкое отвращение к этой системе) и, скорее всего, в каком-либо юзерофильном Linux-дистрибутиве, более или менее успешно уже на стадии инсталляции мимикрирующем «под винду». После чего внутренняя логика sysinstall (и, тем более, аскетических инсталляторов Net- и OpenBSD) не может не показаться ему чуждой и непонятной.

Что же касается дисковой разметки… При первой в своей жизни установке Linux пользователь сталкивается с теми же Primary и Extended Partitions и логическими разделами в последних, с которыми он уже был знаком в DOS/Windows (разница только количественная — вместо одного первичного и одного расширенного раздела с логическими томами перед ним предстают все четыре первичных раздела, один из которых может быть подвергнут дальнейшему дроблению). BSD-мир же требует от пользователя погружения в омут слайсов и субпартиций — в материи, для которых не существует даже устоявшейся англоязычной номенклатуры, и все русские эквиваленты ее способны только еще больше сбить с панталыку. Хотя, повторяю, «внутре» эти понятия не содержат ничего сложного, будучи много логичней схемы «матрешечных контейнеров» внутри расширенного раздела DOS-схемы разметки.

Есть ли выход из этого тупика? В Linux-мире, где обозначенная проблема «вхождения в тему» также существует, хотя и менее выражено, выход нашли в создании юзерофильных (user friendly) дистрибутивов, призванных снизить порог вхождения в проблему. Непременным атрибутом такого дистрибутива был легкий в использовании и простой графический инсталлятор (или, по крайней мере, инсталлятор, воплощающий представление разработчиков о легкости и простоте). Способный к выполнению наиболее критичных для начинающего пользователя действий (дисковая разметка, выбор компонентов, настройка Иксов) в автоматическом или полуавтоматическом режиме.

Однако специфика Linux-дистрибутивостроения была такова, что такие дистрибутивы рано или поздно обрастали собственными «всеобъемлющими» графическими конфигураторами, средствами пакетного менеджмента и своеобычными схемами инициализации. Превращаясь в практически самостоятельные системы, умножающие сущности (один из наиболее ярких примеров — Mandriva). Либо, подобно Corel Linux, эволюционировавшей в Xandros или последовавшей по ее пути Linspire, так и оставаясь «дистрибутивами для бедных»

На берклианской почве традиции юзерофилии долгое время не прививались. Инсталляторы ни одной из трех главных BSD-систем за все время их существования не сделали ни шага в этом направлении. А немногочисленные LiveCD, построенные на базе FreeBSD или NetBSD, предназначались либо для специальных целей (как Frenzy), либо просто для получения представления о системе (как FreeSBIE).

И вот свершилось — в свет выходит первый в истории пользовательский (юзерофильный) дистрибутив FreeBSD, получивший имя PC-BSD (что, вероятно, следует понимать как BSD-систему для персоналки в собственном смысле этого слова). Это — именно дистрибутив, то есть способ распространения основной системы: в основе его лежит FreeBSD 5.3 неизменном виде, лишь дополненная некоторыми компонентами, среди которых наиболее значимые — инсталлятор и собственная система пакетного менеджмента.

До управления пакетами дело еще дойдет, а вот с инсталлятором пользователь сталкивается сразу, как только скачает iso-образ дистрибутивного диска, сболванит его и попробует с него загрузиться. И если попытка окажется удачной (а на некоторых ноутбуках PC-BSD, как и ее мама-Free, грузиться отказывается категорически, даже с отключенным acpi), инсталлятор и представнет перед ним во всей красе.

Точнее, предстанут, конечно же, Иксы с запущенным оконным менеджером Fluxbox, три десктопа которого пригодны для использования: установочный диск PC-BSD представляет собой LiveCD, пригодный к практическому использованию. Правда, следует отметить, что ни одна текстовая консоль не активизирована, что не может не огорчать.

Сам инсталлятор стартует на первом десктопе в полноэкранном режиме. Внимательное его рассмотрение показывает, что это ни что иное, как BSD Installer, разрабатываемый в рамках самостоятельного проекта и в своей текстовой (базируемой на ncurces) ипостаси впервые использованный в DragonFlyBSD. Правда, в PC-BSD он облечен в основанный на Qt графический интерфейс, весьма элегантный.

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

Вариантов тут немного: можно либо задействовать один из существующих первичных разделов (любого типа), либо — диск целиком. Как и в исходном BSD Installer, создание произвольного раздела на неразбитом пространстве невозможно. Однако здесь дело обстоит еще хуже: выбранный раздел (в терминологии FreeBSD — слайс) разделить на привычные любому берклианцу субпартиции невозможно: приходится полагаться на умолчания инсталлятора. Каковые оказываются весьма странными: в пределах выбранного слайса создается раздел под корневую файловую систему (ad0s1a) на весь его объем, за исключением места под раздел подкачки (ad0s1b), равного удвоенному объему оперативной памяти. Никаких тебе /var, /tmp, /usr, не говоря уже о /home. Создаваемая на корневом разделе файловая система — UFS.

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

Если это предупреждение проигнорировать (а ничего иного и не остается делать), то через несколько мгновений, в течении которых собственно и происходит разметка и форматирование, последует предложение выбрать загрузчик. Им может быть BSD Loader (отмеченный по умолчанию), либо какой-либо из ранее установленных: в последнем случае нужно отметить переключатель No boot loader.

Вне зависимости от ответа на гамлетовский вопрос, по нажатии на кнопку Next начинается установка системы . Процесс этот весьма длительный — ведь, кроме FreeBSD Distributions, при этом инсталлируются Иксы и KDE почти в полном составе. Никакого выбора пакетов не предусмотрено. Но во фрейме помощи (слева) разъясняется, что мы получаем в свое распоряжение KDE 3.4.0, а за дальнейшей информацией предлагается обратиться на сайт проекта.

Однако все в этом мире кончается — кончается и развертывание PC-BSD. Отмечу, что дело это осуществляется не из каких-либо тарбаллов, а из файловой системы cloop, знакомой всем, кто запускал Knoppix или устанавливал Gentoo Linux — ранее использования таковой в BSD-системах не наблюдалось. Так вот, по завершении установки следует последний этап: задание пароля для root’а и создание учетной записи обычного пользователя . При этом в окне помощи популярно разъясняется, для чего нужен пользовательский аккаунт, и какие функции возложены на администратора.

Выполнив это и нажав все ту же кнопку Next, мы оказываемся в последней панели инсталлятора (рис. 7). В коей предлагается подвести итог наших усилий перезагрузкой. А заодно сообщается, что дополнительные прекомпилированные пакеты, устанавливаемые «в один клик», можно скачать с сайта проекта. Впрочем, тут же разъясняется, что и использование традиционной для FreeBSD системы портов никто не отменял. Более того, нам любезно сообщают, каким образом это дерево портов можно заполучить.

Вот и все. Следует перезагрузка, по завершении которой перед нами предстает панель менеджера графического входа в систему (kdm). И если в соответствующих полях честно и откровенно ответить на вопросы об имени пользователя и его пароле (заданных на этапе инсталляции), через некоторое время мы оказываемся в среде KDE. Правда, в отличие от обстановки инсталляционного LiveCD, и все обычные для FreeBSD восемь текстовых консолей также доступны.

Во избежание недоразумений следует подчеркнуть: то, что мы получили после установки дистрибутива PC-BSD, являет собой самую что ни на есть обычную FreeBSD с ядром GENERIC и своеобычной схемой инициализации: никаких отличий от материнской системы макроскопически выявить не удается. Не считать же таковым KDE и его приложения…

Набор установленных из дистрибутива KDE-приложений не то чтобы поражает воображение — но содержит практически все необходимое: от сетевых средств до графики и мультимедиа, и даже игр. В то же время KDE-излишеств (типа пакетов kdeedu и kdetoys) не наблюдается.

Разумеется, ни о какой русификации речи не идет. Кириллические консольные шрифты, клавиатурные раскладки и screenmap’ы, как и соответствующие локали, в системе присутствуют. Однако их задействование остается на усмотрение пользователя. В Иксах же наличествует только штатные шрифты cyrillic. Впрочем, средствами KDE пополнить шрифтовое богачество труда не составит — для этого не нужно даже полномочий root’а.

Из прочих важных для начинающего пользователя вопросов отметим наличие «из коробки» звука и отсутствие — видео и средств записи CD/DVD-дисков (кроме штатной берклианской утилиты burncd). То есть для их получения потребуется установка видеокодеков и пакета cdrtools.

Возникает вопрос — где брать софт, не попавший на дистрибутивный диск? И тут «средь мира дольного, для сердца вольного, есть два пути». Одна — «просторная, дорога торная», и ведет она к использованию обычных портов и пакетов FreeBSD. Для получения дерева портов через cvsup существует специальный конфиг — /root/ports-supfile. Требуется только отредактировать его по своим потребностям (по умолчанию там закомментированы все категории пакетов) и запустить команду

$ cvsup /root/ports-supfile

После чего порт нужной программы устанавливается обычным (и многократно описанным, например, здесь) способом

Ну а установка прекомпилированных пакетов из репозитория FreeBSD и того проще — это делается командой вида

$ pkg_add path_to/package_name.tbz

Правда, и тот, и другой способы требуют подключения к Интернету, а разговора о том в ходе инсталляции вроде не было. Тем не менее, никаких особых сложностей тут вроде не предвидится. Модемное соединение элементарно настраивается средствами KDE (программа kppp) — правда, при использовании нормального «железного» модема, разумеется. Ну а обычное сетевое соединение можно настроить обычным же для FreeBSD способом. В том числе и через sysinstall — эту программу (/stand/sysinstall) также никто не отменял…

Есть, однако, и еще один путь наращивания функциональности дистрибутива: это прекомпилированные пакеты в собственном формате, получаемые с сайта проекта. Установка их предельно проста: средствами KDE (например, через kget или непосредственно konqueror) файл такого пакета (вида *.pbi.gz) скачивается, помещаясь на рабочий стол (или в иное другое место). После чего инсталлятор пакетов запускается, запросив предварительно пароль администратора, щелчком мышью на пиктограмме (или имени файла, рис. 1).

Рис. 1. Запуск инсталлятора пакетов

При установке задается один-единственный вопрос — включать ли пакет в K-меню и помещать ли его пиктограмму на рабочий стол (рис. 2).

Рис. 2. Куда помещать пиктограмму для запуска пакета?

Затем можно наблюдать процесс распаковки архива (рис. 3).

Рис. 3. Процесс инсталляции

По завершении чего на рабочем столе можно видеть пиктограмму установленного пакета.

Система пакетного менеджмента — главное (и чуть ли не единственное) отличие PC-BSD от прототипа. И, нужно сказать, в этой системе ее создатели замахнулись на самое святое — на принцип размещения установленных компонентов. Потому что все они собираются в каталог /usr/local/MyPrograms/pkg_name — и исполняемые бинарники, и все библиотечные составляющие. То есть такой пакет оказывается абсолютно автономным, не испытывая никакой потребности в каких-либо внешних библиотеках. А для удобства его запуска символическая ссылка на исполняемый бинарник помещается на обычное место — в /usr/local/bin.

Крамола! — воскликнет стойкий приверженец True Unix Way. Не совсем, — возразим ему мы. Начать с того, что предлагаемая система пакетного менеджмента ни в коем случае не позиционируется разработчиками как замена традиционных ports/packages, а лишь как их дополнение: все общесистемные компоненты и главные приложения (включая Иксы и KDE) устанавливаются и размещаются традиционным способом (в разделяемые подкаталоги /usr/local и /usr/X11R6). А каталог /usr/local/MyPrograms предназначен преимущественно для дополнительного программного обеспечения, подобно каталогу /opt во многих дистрибутивах Linux. Особенную рнадость от такой локализации пакетов ощущаешь при их удалении — для чего достаточно просто снести одноименный подкаталог.

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

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

Русификация? Спасение утопающих — дело рук самих утопающих: собираем второй диск, куда пойдут (в том числе и) шрифты, раскладки и простая инструкция по их установке. И дело в шляпе. Не говоря уже о том, что консольную русификацию в первом приближении можно выполнить средствами sysinstall. А Иксы — они и в Африке Иксы, и русифицируются одинаково — что во FreeBSD, что в Linux’е…

В общем, история повторяется: как всегда, идея user friendly пришла в BSD позже, чем в Linux. И, как всегда, оказалась реализованной лучше. Моим детям, по крайней мере, понравилось:-)