OpenBSD - заметки конечного пользователя
Установка программ
Я уже упоминал, что при инсталляции системы устанавливается воистину спартанский набор программ. Так что практически первое действие, после начального конфигурирования - это установка всех необходимых утилит и приложений.
Делается это двояким способом. Во-первых, именно для этой цели служит знаменитая система портов. Очень, по отзывам, удобная, но желающая постоянного подключения к Сети. Если это условие недостижимо - имеется и система пакетов.
О системе портов у меня, за недоступностью Сети, впечатлений нет. Поэтому остановлюсь на ней вкратце, в меру своего понимания (и на основе данных, приведенных в письме Павла Кайгородова, за которое выражаю ему свою признательность). Это - система сборки программ из исходных текстов, находящихся на ftp-серверах где угодно в Сети. Адреса этих серверов прописываются в т.н. коллекции портов.
Сама по себе коллекция портов - это архив ports.tar.gz, находящийся на дистрибутивном CD в каталоге ~/2.8 (для текущей версии). Архив этот должен быть переписан на диск (иначе он отказывается распаковываться) и распакован соответствующей командой, например
tar -xzf ports,tar,gz
После этого в каталоге /usr обнаруживается подкаталог ports, включающий, в свою очередь, многочисленные вложенные подкаталоги, вроде:
CVS cad emulators mbone security
INDEX chinese games misc shells
Makefile comms graphics net sysutils
README converters infrastructure news textproc
archivers databases japanese plan9 www
astro devel lang print x11
audio distfiles mail productivity
benchmarks editors math russian
Дальнейшие действия, при наличии постоянного подключения к Сети, очень просты: выбираем нужную категорию (например, editors), в ней - подкаталог, соответствующий требуемой программе, скажем, nedit, переходим в него и даем команду
make install
Все дальнейшее - заботы системы. Она определит наличие архивов с исходными текстами в /usr/ports/distfiles. Если их там нет (а можно и заранее положить), то она попробует скачать их, причем на каждый port имеется солидный список мест, где можно взять исходники. На худой конец они обязательно есть на ftp://ftp.freebsd.org/pub/FreeBSD/distfiles (или на ftp://ftp2.ru.freebsd.org/pub/FreeBSD/distfiles). Попутно будут скачаны нужные патчи и все остальное необходимое для сборки.
Затем обязательно будут проверены MD5-суммы для скачаных файлов, что позволит избежать всякого рода ошибок при передаче. Затем автоматически будет выполнена распаковка архивов, на них будут наложены все нужные патчи, вызваны все требуемые скрипты конфигурации, команда make для сборки и все прочее, что потребуется. Далее = собственно инсталяция, приложение будет зарегистрировано как обычный пакет.
Если собираемый пакет зависит от других, отсутствующих в системе (например, библиотек), они также будут установлены автоматически (через тот-же ports). По окончании процесса, можно избавиться от ненужных файлов командой make clean.
А в дальнейшем открывается неплохая возможность держать все существующие в системе приложения (а также прочие компоненты ее, например, ядро) всегда в актуальном состоянии.
Приведенное описание способно вызвать приступ черной зависти у пользователя Linux. Однако реализовать такую систему при отсутствии постоянного подключения к Сети несколько затруднительно.
Конечно, исходники можно заблаговременно скачать (по указанным в ports адресам) и разместить в каталоге /usr/ports/distfiles, Однако, согласитесь, что это уже не совсем то: при неудовлетворенных зависимостях (а это может обнаружиться только в ходе установки) потребуется скачивать и дополнительные пакеты. Если же локализация машины и выхода в Сеть разнесены в пространстве (как это имеет место быть у меня), идея вообще почти теряет смысл.
Однако отчаиваться не стоит - есть выход в виде коллекции пакетов. Понятие пакета совпадает практически с принятым в Linux, особенно в таких дистрибутивах, как Slackware. Это - откомпилированные бинарные программы, собранные в виде компрессированных архивов tgz. Содержащих, кроме собственно файлов программ, также сценарии для их правильной (в соответствии со структурой каталогов OpenBSD) установки.
На инсталляционном диске пакеты расположены в каталоге /2.8/packages/i386. Правда, свалены они здесь в одну кучу, без всякой систематизации. И никак не аннотированы. Однако некую информацию о пакетах получить можно.
Для этого предназначена утилита pkg_info. Запущенная из этого каталога с аргументом в виде имени пакета (обязательно полного), она выдает краткую его (пакета) характеристику. А также, иногда, некоторые сведения о зависимости данного пакета от других. Правда, в очень общей форме, вроде того, что редактор NEdit требует библиотеки Motif.
Тем не менее, работает система пакетов весьма эффективно. Выбрав требуемый, его можно установить командой
pkg_add имя_пакета
(опять же полное). При этом в случае, если устанавливаемый пакет требует наличия каких-либо других пакетов, они будут инсталлированы автоматически.
Так, выбор для установки пакета Lyx приводит к тому, что вместе с ним устанавливается TeX (надстройкой на которым тот является) и все к нему относящееся. При инсталляции KDE тут же, без отдельного приглашения, устанавливается библиотека Qt и прочие требуемые компоненты. Параллельно с GIMP'ом и Bluefish установились все потребные библиотеки Gtk. И все - без единого вопроса, как само собой разумеющееся.
По умолчанию пакеты из коллекции устанавливаются в подкаталоги каталога /usr/local (/usr/local/bin, usr/local/lib и т.д.). Что, соответственно, требует прав администратора. Однако пути инсталляции можно и изменить. Для этого команда pkg_add должна быть запущена с опцией -p (prefix - путь для инсталляции пакета). Правда, работоспособность программы после этого, насколько я понял, не гарантируется...
Установленный с помощью pkg_add пакет фиксируется в базе данных. И информация о нем может быть получена той же утилитой pkg_info (по полному имени в качестве аргумента). При необходимости пакет может быть удален посредством pkg_delete. Делается это автоматически и довольно чисто, не затрагивая, однако, разделяемые компоненты, необходимые для функционирования других программ. Поэтому кое-какие хвосты неизбежны. Ну и конечно служебные файлы и подкаталоги в пользовательских каталогах (которые так любят плодить, например, приложения KDE) придется удалять вручную.
К слову сказать - единственный прокол в работе pkg_add я обнаружил именно при установке KDE 2. Хотя выбор для инсталляции kdebase и влечет за собой неизбежно не только kdesupport, kdelibs, а также библиотеки Qt2. И kde после этого исправно функционирует. Но только - до первой перезагрузки системы. При повторном же запуске KDE грузиться отказывается, жалуясь на отстутствие нескольких библиотек. Хотя командой find таковые легко отыскиваются.
Правда, разбираться я с этим не стал - все равно порт KDE2 под OpenBSD нельзя назвать вполне полноценным. Подожду более полной версии - надеюсь, уже 2.1.
Если и коллекции пакетов окажется недостаточным для полного счастья - всегда есть возможность прибегнуть к сборке необходимых приложений из исходников. Вероятно, в некоторых случаях это потребует каких-то правок текстов или Makefile. Однако у меня все обошлось малой кровью - те несколько приложений (XNC, например, или fookb) скомпилировались без всяких проблем.
И последняя возможность пополнить свой арсенал - запуск бинарных программ для Linux. Что в принципе вполне возможно, так как по умолчанию OpenBSD устанавливается с поддержкой ее совместимости с Linux (и возможностью доступа к файловой системе ext2fs). Однако этот вопрос я еще не изучил как следует. И надеюсь вернуться к нему в специальной заметке.
[Назад] [Содержание] [Вперед]
©
Алексей Федорчук
При использовании ссылаться:
http://onix.nm.ru