Fedora 41 versioonis on ettepanek muuda vaikimisi distributsioon DNF5 pakihalduriks. Alguses plaaniti üleminekut DNF5-le Fedora 39 versioonis, kuid migratsioon viidi edasi tööriistade valmisoleku puudumise tõttu. Ehkki täielik funktsionaalsuse pariteet vana tööriistadega pole veel saavutatud, arvavad arendajad, et distributsioon on migratsiooniks valmis ja puuduvad võimalused saab hiljem rakendada. Ettepanekut ei ole veel arutanud FESCo (Fedora Engineering Steering Committee), mis vastutab Fedora distributsiooni tehnilise arenduse eest. Kui ettepanek kinnitatakse, asendatakse paketid dnf, libdnf ja dnf-cutomatic DNF5 tööriistadega ning uue raamatukoguga libdnf5, ning sümboolne link /usr/bin/dnf hakkab viitama dnf5 täitmisfailile.
Ajal DNF asendas pakihalduri Yum, mis oli täielikult kirjutatud Pythonis. DNF-is on jõudlusele kriitilised madala taseme funktsioonid ümber kirjutatud ning välja viidud eraldi C-teeki hawkey, librepo, libsolv ja libcomps, kuid raamistik ja kõrgema taseme komponendid jäid Pythonisse. Projekt DNF5 keskendub olemasolevate madala taseme teekide ühtlustamisele, Pythonis jäävate pakihalduse komponentide ümberkirjutamisele C++-s ning põhifunktsionaalsuse eraldi teeki libdnf5 väljakandmisele, luues selle teegi ümber Python API säilitamiseks abistruktuuri.
C++ keele kasutamine Python'i asemel lubas vähendada sõltuvuste arvu, vähendada tööriistade suurust ja tõsta jõudlust. Suurem jõudlus on saavutatud mitte ainult masinkoodi kompileerimise tõttu, vaid ka parandatud tehingute tabeli, tõhustatud laadimise optimeerimise ja andmebaasi restruktureerimise abil (süsteemi seisundi ja tehingute ajaloo alused on eraldatud). DNF5 tööriist on eemaldanud sõltuvuse PackageKit'ist, asemel on kaasatud uus DNF Daemon taustprotsess, mis asendab PackageKit'i funktsionaalsuse ning pakub liidest pakettide ja värskenduste haldamiseks graafilistes keskkondades.
Ümberkujundamine on andnud võimaluse teostada mitmeid täiustusi, mis parandavad pakihalduri kasutusmugavust. Näiteks on uues DNF-is rakendatud selgemat protsessi edenemise näidikut; lisatud on kohalike RPM-pakettide toetamine tehingutes; aruannetes teostatavate toimingute kohta on võimalus kuvada teavet, mida süstib pakettidesse sisseehitatud skriptid (scriplets); pakutakse täiustatud bash sisestamise automaatse täiendamise süsteemi.
Allikas: opennet.ru
