Разработчики FreeBSD представили релиз пакетного менеджера Pkg 1.5

Представлен релиз развиваемого проектом FreeBSD пакетного менеджера Pkg 1.5, который заменил собой утилиты из набора pkg_install (pkg_create, pkg_add и pkg_info) и используется по умолчанию начиная с FreeBSD 10 и Dragonfly BSD 3.6. Pkg поддерживает типичные функции таких систем управления пакетами, как APT и YUM, включая управление установленными пакетами, поиск пакетов, обновление пакетов из внешних репозиториев, учёт зависимостей, средства для работы с метаданными, проверка подлинности по цифровой подписи. В качестве формата пакета используется обычный TAR-архив, сжатый при помощи xz, в который помещены файлы, связанные с распространяемым приложением, а также набор управляющих скриптов и метаданных. Метаданные оформлены в виде текстового файла »+MANIFEST» в формате YAML и содержат всю информацию о пакете и определение особенностей его обработки.

Поддерживается включение в пакет скриптов, которые вызываются на различных стадиях установки/обновления/удаления. В системе информация об установленных пакетах и пакетах, присутствующих в репозиториях, хранится в базе данных, на основе SQLite. Информация о начинке репозиториев также экспортируется в формате SQLite. Для оценки наличия уязвимостей в установленных пакетах подготовлена команда «pkg audit». Присутствует режим удаления пакетов, которые были установлены как зависимости и в которых больше нет необходимости.

Из изменений, добавленных в выпуске Pkg 1.5, можно отметить:

Начальная поддержка OS X, NetBSD и EdgeBSD; Начальная поддержка опций provides/requires («pkg shlib --provides/--requires»), позволяющих определить какой установленный пакет предоставляет указанную библиотеку и какие пакеты используют данную библиотеку; Реализация большой порции новых регрессионных тестов; Обновление до последних версий большинства встроенных сторонних программ; Улучшение качества выводимых в процессе работы сообщений; Корректная поддержка флагов доступа к файлам. Возможность установки флагов через plist; Поддержка передачи аргументов для определённых пользователем ключевых слов; В команды установки обновлений добавлена поддержка масок, нечуствительных к регистру символов; В команду «pkg create» добавлен режим детализированного вывода (--verbose); Добавлена опция для смены ответа по умолчанию (ранее по умолчанию всегда принимался ответ «No»); Проведена работа по сокращению потребления памяти и увеличению скорости работы; Многочисленные улучшения в коде для разрешения зависимостей. Более явно указаны мотивы операций удаления, переустановки и обновления; Поддержка команды «pkg create -M ./plop.ucl -p ./plop.plist»; Новая опция «pkg -r rootdir», позволяющая установить пакет в иную корневую директорию без использования chroot. Текущий корень передаётся в скрипты через переменную PKG_ROOTDIR; В «pkg lock» добавлена опция »--has-locked-packages»; При возможности обеспечено возобновление прерванных загрузок; По умолчанию активирован метод консервативного применения обновлений (CONSERVATIVE_UPGRADE). В следующем выпуске планируется реализовать безопасный режим частичного обновления, добавить новые контекстно-зависимые уведомления, обеспечить поддержку гибко задаваемых зависимостей в provides/requires, создать бэкенд для пакетов Linux, добавить возможность размещения в репозитории нескольких версий одного пакета, улучшить документацию, расширить число регрессионных тестов.

© OpenNet