Вышел pkgng 1.0, новый пакетный менеджер для FreeBSD

4 сентября 2012 года

После двух лет разработки представлен первый стабильный релиз пакетного менеджера pkg (pkgng), выступающего в роли отвечающей современным реалиям замены инструментария pkg_install для управления бинарными пакетами во FreeBSD. Pkgng отличается поддержкой таких функций, как обновление пакетов, работа с репозиториями, учёт зависимостей, интерфейс в стиле APT и полноценные средства для работы с метаданными.

Установить pkgng можно через порт ports-mgmt/pkg, в будущем ожидается включение компонентов, необходимых для работы с pkgng, в состав FreeBSD 9 и 10. В настоящее время дерево портов FreeBSD уже полностью подготовлено для использования pkgng (в make.conf следует добавить WITH_PKGNG=yes). Создан экспериментальный сетевой репозиторий пакетов pkgbeta.freebsd.org. Для работы с pkgng адаптированы такие инструменты управления портами, как portupgrade (пока только ветка -devel), ports-pkg_cutleaves, poudriere, portdowngrade, tinderbox-devel, portbuilder и bsdstats. Патчи с поддержкой pkgng уже подготовлены для portmaster и развиваются для salt, cfengine, puppet, биндингов ruby и PackageKit. Для миграции на pkgng текущих установок FreeBSD cоздана утилита pkg2ng, которая регистрирует в БД pkgng данные об уже установленных в системе портах.

Проект pkgng был создан как попытка кардинальной переработки инструментария pkg_install, исторически сложившиеся ограничения в котором существенно мешают развитию инфраструктуры портов, которая вынуждена работать с оглядкой на устаревший инструментарий. Например, вместо корректной и оптимальной реализации тех или иных возможностей, разработчикам до сих пор приходилось выдумывать различные "хаки" в Mk/bsd.*.mk и метаданных. Предпринимаемые ранее попытки создания более современных утилит, например, portmaster и portupgrade, также в конечном счёте упирались в ограничения pkg_install.

Pkgng изначально не позиционируется только для управления портами и рассматривается как полная замена утилитам pkg_*, включая новый формат пакетов, возможность работы только с бинарными пакетами и использование репозитория для их распространения. В основе проекта лежит библиотека libpkg с реализацией функций по работе с пакетами и репозиторями, которую можно использовать для создания дополнительных пользовательских утилит. Поддерживаются типичные функции таких систем управления пакетами, как APT и YUM, включая управление установленными пакетами, поиск пакетов и обновление из удалённых репозиториев.

В качестве формата пакета используется обычный TAR-архив, сжатый при помощи xz, в который помещены файлы, связанные с распространяемым приложением, а также набор управляющих скриптов и метаданных. Метаданные оформлены в виде текстового файла "+MANIFEST" в формате YAML и содержат всю информацию о пакете и определение особенностей его обработки. Поддерживается включение в пакет скриптов, которые будут вызываться на различных стадиях установки/обновления/удаления. В системе информация об установленных пакетах и пакетах, присутствующих в репозиториях, хранится в базе данных, на основе SQLite. Информация о начинке репозиториев также экспортируется в формате SQLite. Для гарантирования валидности источника пакетов поддерживается проверка по RSA-сигнатурам. Для оценки наличия уязвимостей в установленных пакетах подготовлена команда "pkg audit". В будущем планируется расширить средства проверки пакетов по цифровым подписям и подготовить инструменты для рецензирования пакетов.

В pkgng также реализованы полноценные средства учета зависимостей между пакетами, в том числе присутствует режим автоматического удаления пакетов, которые были установлены как зависимости и в которых больше нет необходимости. Новые пакеты могут быть созданы на основании портов или уже установленных в произвольную директорию программ. С точки зрения пользователя, формат работы с pkgng напоминает APT. Например, для обновления данных о содержимом репозитория нужно выполнить "pkg update", для установки программ "pkg install prog1 prog2", для поиска "pkg search ключ" и т.п.

Источники править

 
 
Creative Commons
Эта статья содержит материалы из статьи «Вышел pkgng 1.0, новый пакетный менеджер для FreeBSD», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.