Анонсирован релиз пакетного менеджера DNF 1.0, ознаменовавший стабилизацию кодовой базы и готовность для использования в качестве основного пакетного менеджера в дистрибутиве Fedora 22. Новый выпуск также примечателен поддержкой работы с репозиториями, использующими HTTP basic-аутентификацию.

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.

C точки зрения опций командной строки и файлов конфигурации, DNF почти полностью совместим с YUM. Из наиболее заметных отличий можно отметить: идентичность команд update и upgrade, прекращение поддержки опции "--skip-broken", прекращение поддержки команд "resolvedep" и "deplist" вместо которых следует использовать "dnf provides" и "dnf repoquery --requires", возможностью фильтрации по маске для всех команд, прекращение поддержки некоторых опций конфигурации и изменение настроек по умолчанию. Несмотря на то, что Yum ещё будет поддерживаться некоторое время, данный проект официально объявлен завершившим свой жизненный цикл. Для автоматизации перехода с Yum на DNF и конвертации имеющихся метаданных подготовлен специальный плагин migrate.

Источник: http://www.opennet.ru/opennews/art.shtml?num=42209