Nel rilascio di Fedora 41 è stato proposto di passare al gestore di pacchetti DNF5 come predefinito per la distribuzione. Inizialmente, la transizione a DNF5 era prevista per il rilascio di Fedora 39, ma la migrazione è stata posticipata a causa della mancanza di strumenti adeguati. Nonostante non si sia ancora raggiunta la parità totale in termini di funzionalità con gli strumenti precedenti, gli sviluppatori ritengono che la distribuzione sia pronta per la migrazione, e le funzionalità mancanti possano essere implementate in un secondo momento. La proposta non è ancora stata esaminata dal comitato FESCo (Fedora Engineering Steering Committee), che si occupa degli aspetti tecnici dello sviluppo della distribuzione Fedora. Se la proposta verrà accettata, i pacchetti dnf, libdnf e dnf-cutomatic saranno sostituiti dagli strumenti DNF5 e dalla nuova libreria libdnf5, e il collegamento simbolico /usr/bin/dnf inizierà a puntare al file eseguibile dnf5.
Nel suo momento, DNF ha sostituito il gestore di pacchetti Yum, completamente scritto in Python. In DNF, le funzioni di basso livello esigenti in termini di prestazioni sono state riscritte e separate in librerie C come hawkey, librepo, libsolv e libcomps, mentre la struttura e i componenti di alto livello sono rimasti in Python. Il progetto DNF5 mira a unificare le librerie esistenti di basso livello, a riscrivere in C++ i componenti di gestione dei pacchetti ancora in Python e a separare la funzionalità di base in una libreria libdnf5, creando attorno a questa libreria un'interfaccia per mantenere l'API Python.
L'uso del linguaggio C++ al posto di Python ha permesso di eliminare molte dipendenze, ridurre le dimensioni degli strumenti e migliorare le prestazioni. Le prestazioni elevate sono ottenute non solo grazie alla compilazione in codice macchina, ma anche grazie a una migliore implementazione della tabella delle transazioni, all'ottimizzazione del caricamento dai repository e alla ristrutturazione del database (separando i database con lo stato del sistema dalla cronologia delle operazioni). Gli strumenti DNF5 non sono più legati a PackageKit; al suo posto è in funzione un nuovo processo in background DNF Daemon, che sostituisce le funzionalità di PackageKit e fornisce un'interfaccia per la gestione dei pacchetti e degli aggiornamenti negli ambienti grafici.
La rielaborazione ha anche offerto l'opportunità di implementare alcuni miglioramenti che aumentano la facilità d'uso del gestore di pacchetti. Ad esempio, il nuovo DNF presenta un'indicazione più chiara del progresso delle operazioni; è stata aggiunta la possibilità di utilizzare pacchetti RPM locali per le transazioni; è stata introdotta la possibilità di mostrare nei report sulle transazioni completate le informazioni fornite dagli script incorporati nei pacchetti (scriplets); è stato proposto un sistema di completamento automatico dell'input più avanzato per bash.
Fonte: opennet.ru
