5.4. Использование бинарных пакетов
Пред. | Глава 5. Установка приложений: порты и пакеты | След.

## 5.4. Использование бинарных пакетов

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

Во FreeBSD есть несколько утилит для управления пакетами:

- Для установки, удаления и получения перечня установленных пакетов на работающей системе может быть запущена утилита `sysinstall`. Обратитесь к Раздел 2.10.10, «Установка пакетов (Install Packages)» за более детальной информацией.

- Утилиты командной строки для управления пакетами, которые являются темой данного раздела.

### 5.4.1. Установка пакета

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

Пример 5.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`. В случае загрузки из сети номер версии в имени пакета должен быть опущен.

### Примечание:

Если вы используете FreeBSD-CURRENT или FreeBSD-STABLE, то утилита pkg_add(1) загрузит последнюю версию устанавливаемой программы. Если же вы используете версию -RELEASE, то pkg_add(1) установит версию пакета, который был собран для конкретного релиза. Это поведение возможно изменить переопределив значение `PACKAGESITE`. Например, в системе FreeBSD 8.1-RELEASE pkg_add(1) по умолчанию попытается скачать пакеты с `ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/`. Чтобы обязать pkg_add(1) загружать пакеты для FreeBSD 8-STABLE, присвойте `PACKAGESITE` значение `ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/`.

Файлы пакетов распространяются в форматах `.tgz` и `.tbz`. Пакеты находятся по адресу ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages или в каталоге `/packages` дистрибутива FreeBSD на DVD. Структура каталогов с пакетами подобна тому, как организовано дерево `/usr/ports`. Каждая категория имеет собственный каталог, и каждый пакет помещается в каталог `All`.

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

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

`#` `pkg_info` colordiff-1.0.13 A tool to colorize diff output docbook-1.2 Meta-port for the different versions of the DocBook DTD ...

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

`#` `pkg_version` colordiff = docbook = ...

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

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

### 5.4.3. Удаление пакета

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

`#` `pkg_delete `xchat-1.7.1``

Следует отметить, что для pkg_delete(1) требуется полное имя пакета и номер версии; вышеприведенная команда не сработала бы, если б ей было указано `xchat` вместо `xchat-1.7.1`. Для нахождения версии установленного пакета задействуйте утилиту pkg_version(1). Или же, напечатайте групповой символ (wildcard) вместо номера версии:

`#` `pkg_delete `xchat\*``

в этом случае будут удалены все пакеты, имена которых начинаются на `xchat`.

### 5.4.4. Разное

Вся информация о пакетах, включая перечни файлов и описания каждого установленного пакета, хранится в каталоге `/var/db/pkg`.

Пред. | Наверх | След.
5.3. Поиск программного обеспечения | Начало | 5.5. Использование pkgng для управления бинарными пакетами

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

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