4.4. Использование системы пакетов

Текст предоставил Chern Lee.

4.4.1. Установка пакета

Для установки пакетов программного обеспечения для FreeBSD из локальных файлов или с сервера в сети вы можете использовать утилиту pkg_add(1).

Пример 4-1. Загрузка пакета вручную и его локальная установка

# ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230-  This machine is in Vienna, VA, USA, hosted by Verio.
230-   Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp> get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375  00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp> exit
# pkg_add lsof-4.56.4.tgz

Если у вас нет исходных текстов локальных пакетов (например, набор CD-ROM с FreeBSD), то проще всего, наверное, воспользоваться опцией -r для pkg_add(1). Это приведёт к тому, что утилита автоматически определит правильный формат объектных файлов и релиз, а затем загрузит и установит пакет с сервера FTP.

# pkg_add -r lsof

В примере выше нужный пакет будет загружен и установлен без всякого дополнительного взаимодействия с пользователем. Если вместо основного сайта вы хотите указать другое зеркало пакетов FreeBSD, то для переопределения используемых по умолчанию значений вам необходимо задать соответствующим образом значение переменной PACKAGESITE. Для загрузки файлов утилита pkg_add(1) использует функцию fetch(3), которая принимает во внимание различные переменные окружения, включая FTP_PASSIVE_MODE, FTP_PROXY и FTP_PASSWORD. Если вы находитесь за сетевым экраном или для работы с FTP/HTTP вам необходимо использовать прокси, то определите соответствующие переменные. Обратитесь к справочной странице по fetch(3) для получения полного списка переменных. Заметьте, что в примере выше вместо lsof-4.56.4 используется lsof. При использовании функций загрузки с сети номер версии в имени пакета должен быть опущен. Утилита pkg_add(1) автоматически загрузит последнюю версию приложения.

Файлы пакетов распространяются в форматах .tgz и .tbz. Вы можете найти их по адресу ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages или взять с дистрибутива FreeBSD на CD-ROM. Каждый CD из комплекта FreeBSD на 4 дисках (а также PowerPak и тому подобное) содержит пакеты в каталоге /packages. Расположение пакетов похоже на то, как организовано дерево /usr/ports. Каждая категория имеет собственный каталог, и каждый пакет помещается в каталог All.

Структура каталогов системы пакетов соответствует структуре системы портов; они взаимодействуют друг с другом для формирования единой системы пакетов/портов.

4.4.2. Управление пакетами

pkg_info(1) является утилитой для вывода списка и описаний различных установленных пакетов.

# pkg_info
cvsup-16.1   A general network file distribution system optimized for CV
docbook-1.2   Meta-port for the different versions of the DocBook DTD
...

pkg_version(1) является утилитой для вывода отчёта о версиях всех установленных пакетов. Она сравнивает версию имеющегося пакета с текущей версией, находящейся в дереве портов.

# pkg_version
cvsup      =
docbook      =
...

Символы во второй колонке указывают сравнительную разницу в возрасте установленной версии и версии, находящейся в локальном дереве портов.

Символ Значение
= Версия установленного пакета соответствует версии, находящейся в локальном дереве портов.
< Установленная версия старее, чем та, что имеется в дереве портов.
> Установленная версия новее чем та, что есть в дереве портов. (Скорее всего, локальное дерево портов устарело.)
? В индексном файле портов установленный пакет не может быть найден. (Это может случиться, например, если установленный порт был удалён из Коллекции Портов или переименован.)
* Имеется несколько версий пакета.

4.4.3. Удаление пакета

Для удаления ранее установленных пакетов с программным обеспечением используйте утилиту pkg_delete(1).

# pkg_delete xchat-1.7.1

4.4.4. Разное

Вся информация о пакете хранится в каталоге /var/db/pkg. Список установленных файлов и описания всех пакетов могут быть найдены среди файлов этого каталога.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.

Обновлено: 12.03.2015