Разработчики FreeBSD представили первый официальный репозиторий (pkg.FreeBSD.org) для нового пакетного менеджера pkg. Бинарные пакеты доступны в сборках для архитектур i386 и amd64, и могут быть использованы в выпусках FreeBSD 8.3, 8.4, 9.1, 9.2, 10.0 и 11-HEAD. Сборки пакетов в репозитории обновляются еженедельно на основе содержимого актуальной коллекции портов. Через несколько месяцев планируется выпустить релиз Pkg 1.2 в котором появится поддержка проверки подлинности пакетов по цифровым подписям.
Начиная с FreeBSD 10 пакетный менеджер pkg будет предлагаться по умолчанию и заменит собой утилиты из набора pkg_install (pkg_create, pkg_add и pkg_info). Поддержка pkg_install будет полностью прекращена через 6 месяцев. Поддержка установки программ из портов полностью сохранена. По желанию, пользователи могут продолжить использование portmaster/portupgrade или переключиться на бинарные репозитории pkgng.
Для перехода на pkgng следует убедиться в отсутствии настройки WITH_PKGNG=yes в файле make.conf и выполнить под пользователем root следующие действия:
cd /usr/ports/ports-mgmt/pkg && make install clean echo WITH_PKGNG=yes >> /etc/make.conf pkg2ng
Для использования бинарных пакетов нужно проверить, чтобы версия утилиты pkg была не старее 1.1.4_8 ('pkg -v'), очистить файл конфигурации /usr/local/etc/pkg.conf, создать директорию с репозиторием "mkdir -p /usr/local/etc/pkg/repos" и сфромировать файл конфигурации /usr/local/etc/pkg/repos/FreeBSD.conf:
FreeBSD: { url: "http://pkg.FreeBSD.org/${ABI}/latest", mirror_type: "srv", enabled: "yes" }
Pkg поддерживает типичные функции таких систем управления пакетами, как APT и YUM, включая управление установленными пакетами, поиск пакетов, обновление пакетов из внешних репозиториев, учёт зависимостей, средства для работы с метаданными. В качестве формата пакета используется обычный TAR-архив, сжатый при помощи xz, в который помещены файлы, связанные с распространяемым приложением, а также набор управляющих скриптов и метаданных. Метаданные оформлены в виде текстового файла "+MANIFEST" в формате YAML и содержат всю информацию о пакете и определение особенностей его обработки.
Поддерживается включение в пакет скриптов, которые вызываются на различных стадиях установки/обновления/удаления. В системе информация об установленных пакетах и пакетах, присутствующих в репозиториях, хранится в базе данных, на основе SQLite. Информация о начинке репозиториев также экспортируется в формате SQLite. Для оценки наличия уязвимостей в установленных пакетах подготовлена команда "pkg audit". Присутствует режим удаления пакетов, которые были установлены как зависимости и в которых больше нет необходимости.