Все о Linux. LinuxRSP.Ru


Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

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
      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2017 LinuxRSP