PC-BSD: вхождение в берклианскую тему
Алексей Федорчук
Рискну предположить, что большинство пользователей 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) ипостаси впервые использованный в . Правда, в PC-BSD он облечен в основанный на Qt графический интерфейс, весьма элегантный (рис. 1)
Рис. 1. Начало инсталляции
Сама по себе установка PC-BSD крайне проста и совершается буквально в пять кликов мышью. По нажатии на кнопку Next следует предложение выбрать диск и его раздел для установки (рис. 2). Весьма ценно при этом, что во фрейме слева можно (на английском языке) прочитать о специфике BSD-номенклатуры дисковых устройств и их разделов.
Рис. 2. Выбор диска и раздела
Вариантов тут немного: можно либо задействовать один из существующих первичных разделов (любого типа), либо - диск целиком. Как и в исходном BSD Installer, создание произвольного раздела на неразбитом пространстве невозможно. Однако здесь дело обстоит еще хуже: выбранный раздел (в терминологии FreeBSD - слайс) разделить на привычные любому берклианцу субпартиции невозможно: приходится полагаться на умолчания инсталлятора. Каковые оказываются весьма странными: в пределах выбранного слайса создается раздел под корневую файловую систему (ad0s1a) на весь его объем, за исключением места под раздел подкачки (ad0s1b), равного удвоенному объему оперативной памяти. Никаких тебе /var, /tmp, /usr, не говоря уже о /home. Создаваемая на корневом разделе файловая система - UFS.
Впрочем, разметка диска создается только после грозного предупреждения о потере данных, грозящей в случае выбора существовавшего ранее раздела (рис. 3).
Рис. 3. Предупреждение об уничтожении данных на разделе
Если это предупреждение проигнорировать (а ничего иного и не остается делать), то через несколько мгновений, в течении которых собственно и происходит разметка и форматирование, последует предложение выбрать загрузчик. Им может быть BSD Loader (отмеченный по умолчанию), либо какой-либо из ранее установленных: в последнем случае нужно отметить переключатель No boot loader (рис. 4).
Рис. 4. Устанавливать ли BSD Loader - вот в чем вопрос
Вне зависимости от ответа на гамлетовский вопрос, по нажатии на кнопку Next начинается установка системы (рис. 5). Процесс этот весьма длительный - ведь, кроме FreeBSD Distributions, при этом инсталлируются Иксы и KDE почти в полном составе. Никакого выбора пакетов не предусмотрено. Но во фрейме помощи (слева) разъясняется, что мы получаем в свое распоряжение KDE 3.4.0, а за дальнейшей информацией предлагается обратиться на сайт проекта.
Рис. 5. Процесс (установки) пошел...
Однако все в этом мире кончается - кончается и развертывание PC-BSD. Отмечу, что дело это осуществляется не из каких-либо тарбаллов, а из файловой системы cloop, знакомой всем, кто запускал Knoppix или устанавливал Gentoo Linux - ранее использования таковой в BSD-системах не наблюдалось. Так вот, по завершении установки следует последний этап: задание пароля для root'а и создание учетной записи обычного пользователя (рис. 6). При этом в окне помощи популярно разъясняется, для чего нужен пользовательский аккаунт, и какие функции возложены на администратора.
Рис. 6. Рис. 6. Пароль администратора и учетная запись пользователя
Выполнив это и нажав все ту же кнопку Next, мы оказываемся в последней панели инсталлятора (рис. 7). В коей предлагается подвести итог наших усилий перезагрузкой. А заодно сообщается, что дополнительные прекомпилированные пакеты, устанавливаемые "в один клик", можно скачать с сайта проекта. Впрочем, тут же разъясняется, что и использование традиционной для FreeBSD системы портов никто не отменял. Более того, нам любезно сообщают, каким образом это дерево портов можно заполучить.
Рис. 7
Вот и все. Следует перезагрузка, по завершении которой перед нами предстает панель менеджера графического входа в систему (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) также никто не отменял...
Есть, однако, и еще один путь наращивания функциональности дистрибутива: это прекомпилированные пакеты в собственном формате, получаемые с (или с его зеркала на CITKIT.ru). Установка их предельно проста: средствами KDE (например, через kget или непосредственно konqueror) файл такого пакета (вида *.pbi.gz) скачивается, помещаясь на рабочий стол (или в иное другое место). После чего инсталлятор пакетов запускается, запросив предварительно пароль администратора, щелчком мышью на пиктограмме (или имени файла, рис. 8).
![](image/pc-bsd-vhozhdenie-v-berklianskuju-temu_1.png)
Рис. 8. Запуск инсталлятора пакетов
При установке задается один-единственный вопрос - включать ли пакет в K-меню и помещать ли его пиктограмму на рабочий стол (рис. 9).
![](image/pc-bsd-vhozhdenie-v-berklianskuju-temu_2.png)
Рис. 9. Куда помещать пиктограмму для запуска пакета?
Затем можно наблюдать процесс распаковки архива (рис. 10).
![](image/pc-bsd-vhozhdenie-v-berklianskuju-temu_3.png)
Рис. 10. Процесс инсталляции
По завершении чего на рабочем столе можно видеть пиктограмму установленного пакета.
Система пакетного менеджмента - главное (и чуть ли не единственное) отличие 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. И, как всегда, оказалась реализованной лучше. Моим детям, по крайней мере, понравилось:-)