DNF или Dandified YUM — следующее поколение приложения Yum, менеджер пакетов для дистрибутивов ОС Linux на основе RPM-пакетов. DNF разрабатывается с 2011 годаAdam Saunders Fedora and DNF , LWN July 2, 2014 и был представлен в Fedora 18 и используется как основная система управления пакетами начиная с версии Fedora 22.

Предыдущий YUM имел несколько недостатков, и DNF был призван их решить. Среди них: низкая производительность, высокое потребление памяти и низкая скорость итеративного разрешения зависимостей. DNF применил libsolv — внешний решатель зависимостей.

DNF управляет зависимостями RPM-пакетов и использует ряд существующих библиотек для работы с ними. Изначально проект был реализован на языке программирования Python, но ведутся работы по его переносу на язык С и C++ DNF 3: better performance and a move to C++ / LWN, March 28, 2018Announcing DNF 3 development . Daniel Mach, Jaroslav Mracek, March 22, 2018 и перемещение большинства функций из Python в новую библиотеку libdnf. libdnf уже используется в PackageKit, системе интерфейсов пакетных менеджеров для произвольных дистрибутивов Linux.

Использование DNF стал менеджером пакетов по умолчанию в Fedora начиная с версии 22 от мая 2015 года. Библиотека libdnf используется в проекте PackageKit. DNF является альтернативным менеджером пакетов в Mageia Linux начиная с версии 6, и может стать основным в будущем.

Часть возможностей DNF были перенесены в версию YUM 4 от 2017 года, в том числе, ускоренное разрешение зависимостей.

Зависимости

libdnf Предоставляет API высокого уровня для DNF и базовых библиотек Язык Си, лицензия LGPLv2+

libsolv Бесплатный решатель зависимостей с использованием алгоритма SAT Служит для решения зависимостей и чтения списков пакетов из репозиториев Язык Си, новая лицензия BSD

librepo Библиотека предоставляет интерфейсы С и Python (по аналогии с libcurl) для скачивания метаданных пакетного репозитория Linux и самих пакетов Язык Си, лицензия LGPLv2+

libcomps Libcomps является альтернативой для библиотеки «yum.comps». Реализована на языке Си, имеет интерфейсы для python2 и python3. Язык Си, лицензия GPLv2+

Примечания

Ссылки

Категория:Проект Fedora