Для установки пакетов программного обеспечения для 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. Список установленных файлов и описания всех пакетов могут быть найдены среди файлов этого каталога.