Ben Cotton, ktorý zastáva pozíciu Fedora Program Manager vo firme Red Hat, oznámil plán na prechod Fedora Linux na balíčkový manažér DNF5. Vo Fedore Linux 39 sa plánuje nahradenie balíkov dnf, libdnf a dnf-cutomatic nástrojom DNF5 a novou knižnicou libdnf5. Toto návrh zatiaľ nebol preskúmaný výborom FESCo (Fedora Engineering Steering Committee), ktorý zodpovedá za technickú časť vývoja distribúcie Fedora.
DNF nahradil Yum, ktorý bol napísaný úplne v jazyku Python. V DNF boli náročné na výkon nízkoúrovňové funkcie prepisované a prenesené do samostatných C knižníc hawkey, librepo, libsolv a libcomps, zatiaľ čo rámec a vysokoúrovňové komponenty zostali napísané v jazyku Python. Projekt DNF5 je zameraný na zjednotenie existujúcich nízkoúrovňových knižníc, prepisovanie zostávajúcich komponentov správy balíkov z jazyka Python do C++ a presunutie základnej funkcionality do samostatnej knižnice libdnf5 so vytvorením obalu pre zachovanie Python API.
Použitie jazyka C++ namiesto Pythonu umožní zbaviť sa veľkého počtu závislostí, znížiť veľkosť nástroja a zvýšiť výkon. Vyšší výkon je dosiahnutý nielen použitím kompilácie do strojového kódu, ale aj zlepšenou implementáciou transakčných tabuliek, optimalizáciou načítania z repozitárov a reorganizáciou databázy (rozdelené databázy pre stav systému a históriu operácií). Nástroj DNF5 je oslobodený od väzby na PackageKit, namiesto ktorého je zavedený nový pozadový proces DNF Daemon, ktorý nahrádza funkčnosť PackageKit a poskytuje rozhranie na správu balíkov a aktualizácií v grafických prostrediach.
Prepracovanie tiež umožní realizovať niektoré vylepšenia, ktoré zvyšujú pohodlie pri práci s balíčkovým manažérom. Napríklad, v novom DNF je implementovaná prehľadnejšia indikácia postupu vykonávania operácií; bola pridaná podpora používania lokálnych RPM balíkov pre transakcie; bola pridaná možnosť zobrazenia v správach o vykonaných transakciách informácií poskytovaných skriptami zabudovanými v balíkoch (scriplets); bola navrhnutá pokročilá sústava automatického doplňovania vstupu pre bash.
Zdroj: opennet.ru
