Представлен релиз развиваемого проектом 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, добавить возможность размещения в репозитории нескольких версий одного пакета, улучшить документацию, расширить число регрессионных тестов.
source1
source2
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, добавить возможность размещения в репозитории нескольких версий одного пакета, улучшить документацию, расширить число регрессионных тестов.
source1
source2
Комментариев нет:
Отправить комментарий