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

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

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

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

Example 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

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

    # pkg_add -r lsof-4.56.4

В примере выше нужный пакет будет сгружен и установлен без всякого дополнительного взаимодействия с пользователем.

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

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

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

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

    # pkg_delete xchat-1.7.1

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

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.4. Разное

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