Комитет 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 изискващите производителността нискоуровневни функции бяха пренаписани и изнесени в отделни C-библиотеки hawkey, librepo, libsolv и libcomps, но каркасът и високоуровневите компоненти останаха на езика Python. Проектът DNF5 има за цел унификацията на съществуващите нискоуровневи библиотеки, пренаписване на компонентите за управление на пакетите, останали на Python, на C++, и изнасяне на основната функционалност в отделна библиотека libdnf5 с изграждане около тази библиотека на обвивка за запазване на Python API.
Използването на езика C++ вместо Python позволи да се елиминира голям брой зависимости, да се намали размерът на инструментариума и да се подобри производителността. По-високата производителност се постига не само чрез компилация в машинен код, но и с благодарение на подобрената реализация на таблицата за транзакции, оптимизацията на зареждането от репозитории и преструктурирането на БД (разделени са базите с текущото състояние на системата и историята на операциите). Инструментариумът DNF5 е освободен от обвързаността с PackageKit, като вместо него се използва нов фонов процес DNF Daemon, който заменя функционалността на PackageKit и предоставя интерфейс за управление на пакети и актуализации в графични среди.
Преобработката също предостави възможност за реализиране на някои подобрения, повишаващи удобството при работа с пакетния мениджър. Например, новият DNF реализира по-ясна индикация за напредъка на операциите; добавена е поддръжка за използване на локални RPM пакети за транзакции; добавена е възможност за показване в отчетите за изпълнените транзакции на информация, предоставяна от вградените в пакетите скриптове (scriplets); предложена е по-напреднала система за автоматично допълване на входа за bash.
Източник: opennet.ru
