Ben Cotton, care ocupă funcția de Fedora Program Manager la Red Hat, a anunțat intenția de a trece Fedora Linux la managerul de pachete DNF5. În Fedora Linux 39, se preconizează înlocuirea pachetelor dnf, libdnf și dnf-cutomatic cu instrumentele DNF5 și noua bibliotecă libdnf5. Propunerea nu a fost încă examinată de comitetul FESCo (Fedora Engineering Steering Committee), responsabil pentru partea tehnică a dezvoltării distribuției Fedora.
DNF a înlocuit la vremea sa Yum, care a fost scris în întregime în Python. În DNF, funcțiile de bază, care necesitau performanță înaltă, au fost rescrise și transferate în biblioteci C separate: hawkey, librepo, libsolv și libcomps, însă structura și componentele de nivel înalt au rămas în Python. Proiectul DNF5 vizează unificarea bibliotecilor de bază existente, rescrierea componentelor de gestionare a pachetelor restante în Python în C++ și separarea funcționalității de bază în biblioteca libdnf5, creând în jurul acestei biblioteci un wrapper pentru a păstra API-ul Python.
Utilizarea limbajului C++ în loc de Python va permite eliminarea unui număr mare de dependențe, reducerea dimensiunii instrumentelor și creșterea performanței. O performanță mai bună este atinsă nu doar prin utilizarea compilării în cod mașină, ci și printr-o implementare îmbunătățită a tabelei de tranzacții, optimizarea încărcării din repozitorii și restructurarea bazei de date (separate bazele cu starea sistemului și istoricul operațiunilor). Instrumentele DNF5 nu mai sunt legate de PackageKit, fiind înlocuite de un nou proces de fundal DNF Daemon, care înlocuiește funcționalitatea PackageKit și oferă o interfață pentru gestionarea pachetelor și actualizărilor în medii grafice.
Restructurarea va permite, de asemenea, implementarea unor îmbunătățiri care cresc confortul utilizării managerului de pachete. De exemplu, noul DNF oferă o indicație mai clară a progresului operațiunilor; a fost adăugată suportul pentru utilizarea pachetelor RPM locale în tranzacții; a fost inclusă posibilitatea de a arăta în rapoartele despre tranzacțiile efectuate informațiile emise de scripturile încorporate în pachete (scriplets); a fost propus un sistem mai avansat de autocompletare a introducerii pentru bash.
Sursa: opennet.ro
