Управление пакетами во FreeBSD при помощи утилиты pkg

15 марта 2016

Как известно, во FreeBSD можно использовать пакеты как бинарные, так и собранные из исходных кодов при помощи портов. Устройство портов за последнее время ничем не изменилось. А вот на смену утилитам для управления бинарными пакетами pkg_add, pkg_info и прочим pkg_* в последних версиях FreeBSD пришел новый пакетный менеджер pkg (также известный как pkgng). Данная небольшая заметка рассказывает о том, как им пользоваться.

Примечание: Узнать о том, как во FreeBSD раньше происходило управление бинарными пакетами, и о том, как пользоваться портами, вы можете из заметки Установка и обновление софта во FreeBSD. Не исключаю также, что вас могут заинтересовать статьи Использование FreeBSD на десктопе, версия 2.0 и Памятка по обновлению ядра и мира FreeBSD.

Итак, при первом запуске pkg без параметров вы скорее всего увидите такое сообщение:

The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]:

Отвечаем утвердительно, и ждем, пока pkg установится.

Затем читаем справку:

pkg help

Посмотреть справку по конкретной команде можно так:

pkg help update

Обновляем информацию о доступных пакетах:

pkg update

Смотрим список установленных пакетов:

pkg info

Обновляем установленные пакеты:

pkg upgrade

Ищем пакет по названию:

pkg search xorg

Установка пакета/пактетов и всех его/их зависимостей:

pkg install xorg
pkg install git-lite vim-lite sudo

Удаляем пакет:

pkg delete xorg

Удаляем пакеты, которые больше не нужны:

pkg autoremove

Смотрим, к какому пакету относится файл:

pkg which /usr/local/bin/git

Посмотреть полный список файлов в пакете можно так:

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?

Метки: .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.