Вышел 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 ключ" и т.п.
Источники
править- Главная ссылка к новости (http://lists.freebsd.org/piper...)
- Amazing new world with pkgng
- Using pkgng in real life
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.