Разработчики 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 или переключиться на бинарные репозитории pkg.

Для перехода на pkg, если этот пакет не установлен, следует выполнить под пользователем root следующие действия (до установки не следует добавлять настройку WITH_PKGNG=yes в файл make.conf):


 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". Присутствует режим удаления пакетов, которые были установлены как зависимости и в которых больше нет необходимости.

Источник: http://www.opennet.ru/opennews/art.shtml?num=38306