Комитет FESCo (Fedora Engineering Steering Committee), отвечающий за техническую часть разработки дистрибутива Fedora Linux, утвердил задействование по умолчанию пакетного менеджера DNF5 в осеннем выпуске Fedora 41. Пакеты dnf, libdnf и dnf-cutomatic будут заменены в Fedora 41 на инструментарий DNF5 и новую библиотеку libdnf5, а символическая ссылка /usr/bin/dnf начнёт указывать на исполняемый файл dnf5.
Несмотря на то, что полный паритет в функциональности со старым инструментарием всё ещё не достигнут, разработчики считают, что дистрибутив готов к миграции, а недостающие возможности можно реализовать позднее. Например, пока недоступна функциональность, связанная с управлением историей транзакций, лежащая в основе команды "dnf history". Также ещё не завершена работа по интеграции поддержки фонового процесса dnf5daemon в менеджер приложений GNOME Software. Требует дополнительного тестирования механизм обновления всей системы до следующего релиза (команда system-upgrade).
В своё время DNF пришёл в дистрибутиве на смену пакетному менеджеру Yum, который был написан целиком на языке Python. В DNF требовательные к производительности низкоуровневые функции были переписаны и вынесены в отдельные Си-библиотеки hawkey, librepo, libsolv и libcomps, но каркас и высокоуровневые компоненты остались на языке Python. Проект DNF5 нацелен на унификацию имеющихся низкоуровневых библиотек, переписывание на языке С++ остающихся на Python компонентов управления пакетами и вынос базовой функциональности в отдельную библиотеку libdnf5 с созданием вокруг этой библиотеки обвязки для сохранения Python API.
Использование языка С++ вместо Python позволило избавиться от большого числа зависимостей, сократить размер инструментария и повысить производительность. Более высокая производительность достигается не только благодаря применению компиляции в машинный код, но и за счёт улучшенной реализации таблицы транзакций, оптимизации загрузки из репозиториев и реструктуризации БД (разделены базы с состоянием системы и историей операций). Инструментарий DNF5 избавлен от привязки к PackageKit, вместо которого задействован новый фоновый процесс DNF Daemon, заменяющий функциональность PackageKit и предоставляющий интерфейс для управления пакетами и обновлениями в графических окружениях.
Переработка также дала возможность реализовать некоторые улучшения, повышающие удобство работы с пакетным менеджером. Например, в новом DNF реализована более наглядная индикация прогресса выполнения операций; добавлена поддержка использования локальных RPM-пакетов для транзакций; добавлена возможность показа в отчётах о выполненных транзакциях информации, выдаваемой встроенными в пакеты скриптами (scriplets); предложена более продвинутая система автодополнения ввода для bash.
|