Во FreeBSD есть несколько утилит для управления пакетами:
Для установки, удаления и получения перечня установленных
пакетов на работающей системе может быть запущена утилита
sysinstall
. Обратитесь к Раздел 2.10.10, <<Установка пакетов (Install Packages)>> за более детальной информацией.
Утилиты командной строки для управления пакетами, которые являются темой данного раздела.
Для установки бинарного пакета FreeBSD из локального файла или с сервера в сети используйте pkg_add(1).
#
ftp -a
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.ftp2.FreeBSD.org
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
.
Для вывода перечня установленных пакетов и их описаний может быть задействована 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 не
удалось сравнить номер версии установленного пакета
и соответствующей записи в файле. |
Для удаления ранее установленных пакетов с программным обеспечением используйте утилиту 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
.
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.