Доступен пакетный менеджер DNF 2.0, пришедший на смену Yum

26 декабря 2016 года

Опубликован (Архивная копия от 25 марта 2017 на Wayback Machine) второй значительный релиз пакетного менеджера DNF (2.0), который вобрал в себя улучшения, подготовленные после задействования DNF по умолчанию в Fedora Linux и сосредоточенный на улучшении совместимости с YUM.

В DNF 2.0 реализованы более понятные уведомления о проблемах с зависимостями, организован показ списка слабых зависимостей в суммарных параметрах транзакции, добавлена улучшенная система подсказки для доступных команд. В основной состав DNF перемещён плагин Repoquery. Добавлены новые unit-файлы для systemd: dnf-automatic-notifyonly, dnf-automatic-download и dnf-automatic-install.

Реализованы команды и опции:

  • "dnf remove --duplicates" и "dnf remove --oldinstallonly" для удаления старых версий дублирующих друг друга пакетов и старых пакетов категории installonly.
  • Новая команда "dnf repoquery" (ранее данная функциональность развивалась как отдельный плагин) для поиска пакетов во внешних репозиториях (аналог "rpm -q" для удалённого репозитория);
  • Добавлена опция "--repo репозиторий" для ограничения операций только репозиторием, выбранным по идентификатору или маске.
  • Новая команда "dnf check" для выполнения проверки целостности локальной БД packagedb и вывода информации о возможных проблемах. Поддерживаются опции для ограничения проверки отдельными областями, например "--dependencies", "--duplicates", "--obsoleted и "--provides".
  • Новая команда "dnf upgrade-minimal", позволяющая обновить каждый пакет до самой свежей версии с улучшениями или исправлениями ошибок и уязвимостей.
  • Новые опции для выбора уровня безопасности: bugfix, enhancement, newpackage, security, advisory, bzs, cves, sec-severity и secseverity.

К сожалению, некоторые изменения в выпуске, связанные с поддержкой особенностей работы YUM, привели к нарушению полной совместимости с веткой DNF-1. В том числе возвращено свойственное для YUM поведение для настроек файла конфигурации, например опции "include" и "exclude" заменены на "includepkgs" и "excludepkgs", для установки опциональных зависимостей вместо команды "with-optional" теперь предлагается параметр "--with-optional", вместо "dnf search all" - "dnf search --all", вместо "dnf makecache timer" - "dnf makecache --timer", вместо "dnf list command" - "dnf list --command", вместо "dnf repolist [enabled|disabled|all]" - "dnf repolist [--enabled|--disabled|--all]" и т.д. Также изменены аргументы в некоторых вызовах Python API.

Напомним, что DNF является ответвлением от Yum 3.4, созданным для развития некоторых новых идей, таких как использование библиотеки hawkey в качестве бэкенда для разрешения зависимостей. В качестве основных проблем Yum, которые побудили к созданию DNF, называют некачественную документацию на API, проблемный алгоритм разрешения зависимостей и невозможность рефакторинга внутренних функций. По сравнению с Yum, DNF обладает заметно более высокой скоростью работы, низким потреблением памяти и более качественным управлением зависимостями. Кроме того, DNF может выполняться как при помощи Python 2, так и Python 3, что позволило реализовать план по поставке Python 3 в Fedora по умолчанию.

Для разрешения зависимостей в DNF задействован SAT solver, реализованный в библиотеке libsolv (hawkey выступает в роли надстройки над libsolv), созданной в рамках проекта openSUSE. Обработки метаданных и загрузка пакетов выполняется через librepo. Для расширения функциональности DNF предоставляет новый, не совместимый с Yum, API для плагинов и интеграции с другими приложениями, такими как инсталлятор Anaconda. На уровне опций командной строки и файлов конфигурации, DNF почти полностью совместим с YUM.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Доступен пакетный менеджер DNF 2.0, пришедший на смену Yum», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.