27
сентября
1

Система пакетов в FreeBSD



Как известно, программы во FreeBSD можно устанавливать непосредственно с исходных кодов либо через систему портов или пакетов. Дерево портов содержит в себе инструкции по получению и компиляции программ, а пакеты — это уже скомпилированные под определенную версию дистрибутива порты. Основное отличие заключается в возможности настройки и, конечно же, скорости установки. Если нужно установить большую программу, например OpenOffice.org, не требующую особой настройки, то лучше прибегнуть к помощи системы пакетов.

Управлять пакетами достаточно просто, а главное — это то, что после установки программы через коллекцию портов операционная система видит ее как пакет и можно применять те же команды, что и к установленным пакетам (pkg_delete/pkg_info). Установленный порт также регистрируется в /var/db/pkg.

На установочных дисках обычно есть каталог pakages и он имеет такую же структуру, как система портов, за исключением директории All, где находятся все пакеты, а в остальных директориях лишь символические ссылки на них. Для установки пакета достаточно примонтировать диск либо скачать пакет с FTP-зеркала под свою архитектуру и версию дистрибутива (pub/FreeBSD/ports/_arch_/packages-_version_) и выполнить:

pkg_add _name-version_.tbz;

но намного удобнее и проще устанавливать непосредственно с FTP-сервера:

pkg_add -r _name-version_.tbz;

автоматически также будут загружены и установлены зависимости пакета.Если процесс загрузки прервется, то загруженные файлы будут уничтожены; чтобы этого не произошло можно использовать ключ -K. Для выбора зеркала с которого скачивать пакеты нужно установить переменную окружения PACKAGEROOT, указав нужный сервер (по умолчанию, ftp://ftp.freebsd.org). Например,

setenv  PACKAGEROOT ftp://ftp7.ua.freebsd.org

Для удаления пакета используется одна из команд:

pkg_delete _name-version_
pkg_delete /var/db/pkg/_name-version_

Удаляется только сам пакет, без программ от которых он зависит. Удаление пакета, необходимого для работы другого пакета, вызовет проблемы в работе этих программ; хотя существует возможность принудительного удаления с ключом -f.
Полный список всех программ в системе можно найти в директории /var/db/pkg, содержащей каталоги с названиями программ, установленных как с портов, так и с пакетов.

В каждом каталоге находятся стандартные файлы содержащие следующую информацию:

+COMMENT — краткое описание;
+DESC — развернутое описание;
+MTREE_DIRS — описание в mtree;
+CONTENTS — список установленных пакетом файлов, зависимостей и инструкции к удалению пакета;

Также информацию о ПО можно получить с помощью утилиты pkg_info вместо самостоятельного поиска в /var/db/pkg. Запуск без параметров выведет список всех установленных программ с кратким описанием.

pkg_info -aRs

-a — для всех пакетов;
-R — вывести только какими пакетами востребован данный;
-s — для определения занимаемого дискового пространства установленными файлами используется ключ.

Очень полезным является ключ -W, позволяющий узнать к какому пакету относится указанный файл. К примеру,

pkg_info -W /usr/local/bin/htpasswd
/usr/local/bin/htpasswd was installed by package apache-1.3.42
Понравилась статья?
Подписаться на RSS feed
Один комментарий:
  1. rtyhewrth 20 февраля, 2014

    самый нужный ключ это pkg_info -L _name-version | more

Оставить комментарий