Вышел pkgng 1.0, новый пакетный менеджер для FreeBSD
Установить 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://www.opennet.ru/opennews/art.shtml?num=34739
|
0 | Tweet | Нравится |
|