Как известно, во FreeBSD можно использовать пакеты как бинарные, так и собранные из исходных кодов при помощи портов. Устройство портов за последнее время ничем не изменилось. А вот на смену утилитам для управления бинарными пакетами pkg_add, pkg_info и прочим pkg_* в последних версиях FreeBSD пришел новый пакетный менеджер pkg (также известный как pkgng). Данная небольшая заметка рассказывает о том, как им пользоваться.
Примечание: Узнать о том, как во FreeBSD раньше происходило управление бинарными пакетами, и о том, как пользоваться портами, вы можете из заметки Установка и обновление софта во FreeBSD. Не исключаю также, что вас могут заинтересовать статьи Использование FreeBSD на десктопе, версия 2.0 и Памятка по обновлению ядра и мира FreeBSD.
Итак, при первом запуске pkg без параметров вы скорее всего увидите такое сообщение:
Do you want to fetch and install it now? [y/N]:
Отвечаем утвердительно, и ждем, пока pkg установится.
Затем читаем справку:
Посмотреть справку по конкретной команде можно так:
Пример, пакеты от которых зависит Webmin
# pkg info -d webmin webmin-1.870: p5-Net-SSLeay-1.82 p5-Authen-PAM-0.16_2 python27-2.7.14_1 perl5-5.24.3 p5-IO-Tty-1.12_2 #
Обновляем информацию о доступных пакетах:
pkg update
Смотрим список установленных пакетов:
pkg info
Обновляем установленные пакеты:
pkg upgrade
Ищем пакет по названию:
Установка пакета/пактетов и всех его/их зависимостей:
pkg install git-lite vim-lite sudo
Удаляем пакет:
pkg delete xorg
Удаляем пакеты, которые больше не нужны:
pkg autoremove
Смотрим, к какому пакету относится файл:
Посмотреть полный список файлов в пакете можно так:
pkg info -l mesa-demos
Загружаем базу известных уязвимостей:
pkg audit -F
Проверяем установленные пакеты на предмет наличия известных уязвимостей, с ссылками на подробные отчеты:
pkg audit
Проверяем все установленные пакеты на предмет валидности контрольных сумм входящих в пакеты файлов:
pkg check -s -a
Проверяем все установленные пакеты на предмет отсутствия требуемых зависимостей:
pkg check -d -a
Удаляем из кэша старые пакеты:
pkg clean
Смотрим статистику:
pkg stats
Запрещаем/разрешаем обновление конкретного пакета:
pkg lock syncthing pkg unlock syncthing
Посмотреть список «залоченых» пакетов:
pkg lock -l
Откатиться к более старой версии пакета:
sudo pkg remove chromium sudo pkg install /var/cache/pkg/chromium-51.0.2704.106_2.txz
В целом я хочу сказать, что управление пакетами во FreeBSD стало намного лучше, чем оно было раньше. Прям действительно есть нормальный пакетный менеджер, не только не уступающий линуксовым Yum и Apt, но в чем-то даже и превосходящих их. Например, интерфейс у pkg прост, понятен и единообразен, чего уж точно нельзя сказать об Apt. Пакеты весьма свежие. Например, когда я разбирался с pkg, с его помощью можно было установить последний на тот момент Go версии 1.5, а в Ubuntu из коробки был доступен только древнейший Go 1.2. Аналога pkg audit
в мире дистрибутивов Linux мне вот так с лету и вовсе неизвестно.
Все подробности, как обычно, в man pkg
. А как вам новый пакетный менеджер FreeBSD?