In der Veröffentlichung von Fedora 41 wird vorgeschlagen, die Standard-Distribution auf den Paketmanager DNF5 umzustellen. Ursprünglich war der Übergang zu DNF5 für die Veröffentlichung von Fedora 39 geplant, wurde jedoch aufgrund der Unfertigkeit der Werkzeuge verschoben. Obwohl die vollständige funktionale Parität mit den alten Werkzeugen noch nicht erreicht ist, sind die Entwickler der Ansicht, dass die Distribution bereit für die Migration ist und fehlende Funktionen später implementiert werden können. Der Vorschlag wurde bisher nicht vom FESCo-Ausschuss (Fedora Engineering Steering Committee), der für die technische Entwicklung der Fedora-Distribution verantwortlich ist, geprüft. Bei Annahme des Vorschlags werden die Pakete dnf, libdnf und dnf-cutomatic durch die DNF5-Werkzeuge und die neue Bibliothek libdnf5 ersetzt, und der symbolische Link /usr/bin/dnf wird auf die ausführbare Datei dnf5 verweisen.
Zu seiner Zeit ersetzte DNF den Paketmanager Yum, der vollständig in Python geschrieben war. In DNF wurden die leistungsintensiven, niedrig-leveligen Funktionen neu geschrieben und in separate C-Bibliotheken wie hawkey, librepo, libsolv und libcomps ausgelagert, während das Gerüst und die hoch-leveligen Komponenten weiterhin in Python verblieben. Das DNF5-Projekt zielt darauf ab, die vorhandenen niedrig-leveligen Bibliotheken zu vereinheitlichen, die verbleibenden in Python geschriebenen Paketverwaltungs-Komponenten in C++ neu zu schreiben und die grundlegende Funktionalität in eine separate Bibliothek libdnf5 auszulagern, mit einer Wrapper-Entwicklung um diese Bibliothek herum, um die Python-API beizubehalten.
Die Verwendung von C++ anstelle von Python hat es ermöglicht, eine Vielzahl von Abhängigkeiten zu beseitigen, die Werkzeuggröße zu reduzieren und die Leistung zu steigern. Die höhere Leistung wird nicht nur durch die Kompilierung in Maschinencode erreicht, sondern auch durch eine verbesserte Implementierung der Transaktionstabelle, Optimierung des Zugriffs auf Repositories und die Umstrukturierung der Datenbank (Aufteilung in Systemstatus und Betriebshistorie). Das DNF5-Werkzeug ist von PackageKit entkoppelt, und stattdessen wird ein neuer Hintergrundprozess, der DNF Daemon, eingesetzt, der die Funktionalität von PackageKit ersetzt und eine Schnittstelle für die Verwaltung von Paketen und Updates in grafischen Umgebungen bereitstellt.
Die Überarbeitung hat auch die Möglichkeit geboten, einige Verbesserungen umzusetzen, die die Benutzerfreundlichkeit des Paketmanagers erhöhen. So bietet DNF eine anschaulichere Progressionsanzeige für durchgeführte Operationen; die Unterstützung für lokale RPM-Pakete bei Transaktionen wurde hinzugefügt; es wurde die Möglichkeit eingeführt, Informationen, die von den in den Paketen enthaltenen Skripten (Scriplets) bereitgestellt werden, in den Bericht über ausgeführte Transaktionen anzuzeigen; sowie ein fortschrittlicheres System zur automatischen Vervollständigung von Eingaben für bash vorgeschlagen.
Quelle: opennet.ru
