02.07.2022

В Fedora планируют заменить пакетный менеджер DNF на Microdnf

Разработчики Fedora Linux намерены перевести дистрибутив на новый пакетный менеджер Microdnf вместо ныне используемого DNF. Первым шагом на пути к миграции станет планируемое в выпуске Fedora Linux 38 значительное обновление Microdnf, который будет приближен по функциональности к DNF, а в некоторых областях даже станет его превосходить. Отмечается, что новая версия Microdnf будет поддерживать все основные возможности DNF, но при этом сохранит высокую производительность и компактность.

Ключевым отличием Microdnf от DNF является использование для разработки языка Си, вместо Python, что позволяет избавиться от большого числа зависимостей. Изначально Microdnf развивался как урезанный вариант DNF для использования в контейнерах Docker, не требующий установки Python. Теперь разработчики Fedora планируют довести Microdnf до уровня DNF и со временем полностью заменить DNF на Microdnf.

Основой Microdnf выступает библиотека libdnf5, развиваемая в рамках проекта DNF 5. Основная идея DNF 5 в переписывании базовых операций управления пакетами на языке С++ и их вынос в отдельную библиотеку с созданием вокруг этой библиотеки обвязки для сохранения Python API.

Новая версия Microdnf также будет использовать фоновый процесс DNF Daemon, заменяющий функциональность PackageKit и предоставляющий интерфейс для управления пакетами и обновлениями в графических окружениях. В отличие от PackageKit в DNF Daemon будет предоставляться поддержка только формата RPM.

Microdnf, libdnf5 и DNF Daemon на первой стадии внедрения планируют поставлять параллельно с традиционным инструментарием DNF. После доведения проекта до полной готовности новая связка заменит собой такие пакеты, как dnf, python3-dnf, python3-hawkey, libdnf, dnfdragora, и python3-dnfdaemon.

Из областей, в которых Microdnf превосходит DNF, отмечается: более наглядная индикация прогресса выполнения операций; улучшенная реализация таблицы транзакций; возможность вывода в отчётах о выполненных транзакциях информации, выдаваемой встроенными в пакеты скриптами (scriplets); поддержка использования локальных RPM-пакетов для транзакций; более продвинутая система автодополнения ввода для bash; поддержка выполнения команды builddep без установки Python в системе.

Среди минусов перехода дистрибутива на Microdnf упоминается изменение структуры внутренних БД и раздельная от DNF обработка БД, что не позволит видеть в Microdnf транзакции с пакетами, выполненные в DNF и наоборот. Кроме того, в Microdnf не планируют сохранить 100% совместимость в DNF на уровне команд и опций командной строки. Также будут наблюдаться некоторые расхождения в поведении. Например, удаление пакета не будет приводить к удалению связанных с ним зависимостей, которые не используются в других пакетах.

Источник.