Для установки пакетов программного обеспечения для 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.
Структура каталогов системы пакетов идентична структуре каталога с портами; они взаимодействуют друг с другом для формирования единой системы пакетов/портов.
Для удаления ранее установленных пакетов с программным обеспечением используйте утилиту pkg_delete(1).
# pkg_delete xchat-1.7.1
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 =
...Символы во второй колонке указывают сравнительную разницу в возрасте установленной версии и версии, находящейся в локальном дереве портов.
| Символ | Значение |
|---|---|
| = | Версия установленного пакета соответствует той, что находится в локальном дереве портов. |
| < | Установленная версия старее, чем та, что имеется в дереве портов. |
| > | Установленная версия новее чем та, что есть в дереве портов. (скорее всего, локальное дерево портов устарело) |
| ? | В индексном файле портов установленный пакет не может быть найден. |
| * | Имеется несколько версий пакета. |
Вся информация о пакете хранится в каталоге /var/db/pkg. Список установленных файлов и описания всех пакетов могут быть найдены среди файлов этого каталога.