In Fedora 41, it is proposed to switch the default distribution to the DNF5 package manager. Originally, the transition to DNF5 was planned for Fedora 39, but the migration was postponed due to unprepared tools. Although full feature parity with the old tools has not yet been achieved, the developers believe that the distribution is ready for migration, and missing capabilities can be implemented later. The proposal has not yet been reviewed by the FESCo (Fedora Engineering Steering Committee), which is responsible for the technical part of the Fedora distribution development. If the proposal is approved, the dnf, libdnf, and dnf-cutomatic packages will be replaced by the DNF5 tools and the new libdnf5 library, and the symbolic link /usr/bin/dnf will begin to point to the dnf5 executable.
In its time, DNF replaced the Yum package manager in the distribution, which was entirely written in Python. In DNF, performance-demanding low-level functions were rewritten and separated into individual C libraries: hawkey, librepo, libsolv, and libcomps, but the framework and high-level components remained in Python. The DNF5 project aims to unify existing low-level libraries, rewrite remaining Python package management components in C++, and separate the core functionality into a separate libdnf5 library with a wrapper created around it to maintain the Python API.
Het gebruik van C++ in plaats van Python heeft geleid tot het verminderen van een groot aantal afhankelijkheden, het verkleinen van de toolkit en het verbeteren van de prestaties. Hogere prestaties worden niet alleen bereikt door compilatie naar machinetaal, maar ook door een verbeterde implementatie van de transactietabel, optimalisatie van downloads uit repositories en herstructurering van de database (waarbij de databases met de systeemstatus en de geschiedenis van bewerkingen zijn gescheiden). De DNF5-toolkit is ontkoppeld van PackageKit, waarvoor nu een nieuw achtergrondproces DNF Daemon wordt gebruikt dat de functionaliteit van PackageKit vervangt en een interface biedt voor pakketbeheer en updates in grafische omgevingen.
De herstructurering heeft ook de mogelijkheid geboden om enkele verbeteringen door te voeren die het werken met de pakketbeheerder vergemakkelijken. Bijvoorbeeld, in de nieuwe DNF is er een meer visuele indicatie van de voortgang van operaties; ondersteuning toegevoegd voor het gebruik van lokale RPM-pakketten voor transacties; de mogelijkheid toegevoegd om in de rapporten over uitgevoerde transacties informatie weer te geven die door scripts ingebed in de pakketten (scriplets) wordt geleverd; en een geavanceerder systeem voor het automatisch aanvullen van invoer voor bash voorgesteld.
Bron: opennet.ru
