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

После 9 месяцев разработки представлен релиз развиваемого проектом FreeBSD пакетного менеджера Pkg 1.3, который заменил собой утилиты из набора pkg_install (pkg_create, pkg_add и pkg_info) и используется по умолчанию начиная с выпуска FreeBSD 10. В разработке нового выпуска приняли участие 29 разработчиков. Из добавленных в новом выпуске изменений можно отметить:

Представлена новая реализация кода для разрешения зависимостей, поддерживающая решение задачи выполнимости булевых формул (SAT Solver) и способная автоматически обрабатывать конфликты и динамически выявлять их наличие; В команду «pkg install» добавлена возможность установки пакетов из локальных файлов с разрешением связанных с ними зависимостей во внешних репозиториях; Большая часть кода теперь выполняется в режиме изоляции (sandbox); Проведена работа по улучшению переносимости; Процесс установки пакетов переработан для обеспечения более высокой безопасности и корректной обработки флагов schg; Внесены изменения в реализацию механизма блокировки для обеспечения более гранулированных локальных блокировок; Упрощён API; Задействована библиотека libucl; Внесены изменения в интерфейс пользователя, направленные на обеспечение более комфортной работы; Расширена поддержка работы одновременно с несколькими репозиториями; В библиотеку вынесен код с реализацией команды «pkg audit»; Добавлена возможность переопределения параметров конфигурации для отдельной операции из командной строки через указание «pkg -o A=B». Pkg поддерживает типичные функции таких систем управления пакетами, как APT и YUM, включая управление установленными пакетами, поиск пакетов, обновление пакетов из внешних репозиториев, учёт зависимостей, средства для работы с метаданными, проверка подлинности по цифровой подписи. В качестве формата пакета используется обычный TAR-архив, сжатый при помощи xz, в который помещены файлы, связанные с распространяемым приложением, а также набор управляющих скриптов и метаданных. Метаданные оформлены в виде текстового файла »+MANIFEST» в формате YAML и содержат всю информацию о пакете и определение особенностей его обработки.

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

© OpenNet