Das FESCo-Komittee (Fedora Engineering Steering Committee), verantwortlich für die technische Entwicklung der Fedora Linux-Distribution, hat die standardmäßige Verwendung des Paketmanagers DNF5 in der Herbstversion Fedora 41 genehmigt. Die Pakete dnf, libdnf und dnf-cutomatic werden in Fedora 41 durch das DNF5-Werkzeugset und die neue Bibliothek libdnf5 ersetzt, und der symbolische Link /usr/bin/dnf wird auf die ausführbare Datei dnf5 zeigen.
Obwohl die vollständige Parität in der Funktionalität mit dem alten Werkzeugset noch nicht erreicht ist, sind die Entwickler der Meinung, dass die Distribution bereit für die Migration ist und fehlende Funktionen später implementiert werden können. Beispielsweise fehlt derzeit die Funktionalität zum Verwalten der Transaktionshistorie, die der Befehl „dnf history“ nutzt. Auch die Integration der Unterstützung des Hintergrundprozesses dnf5daemon in den GNOME Software-Anwendungsmanager ist noch nicht abgeschlossen. Der Aktualisierungsmechanismus für die gesamte Systemmigration zur nächsten Version (Befehl system-upgrade) benötigt zusätzliches Testing.
Ursprünglich wurde DNF als Ersatz für den Paketmanager Yum in die Distribution eingeführt, der vollständig in Python geschrieben war. In DNF wurden leistungsintensive Low-Level-Funktionen neu geschrieben und in separate C-Bibliotheken wie hawkey, librepo, libsolv und libcomps ausgelagert, während das Framework und die High-Level-Komponenten in Python verblieben. Das DNF5-Projekt zielt darauf ab, bestehende Low-Level-Bibliotheken zu vereinheitlichen, auch die in Python verbleibenden Komponenten des Paketmanagements in C++ neu zu schreiben und die grundlegende Funktionalität in einer separaten Bibliothek libdnf5 auszulagern, die eine Schnittstelle um diese Bibliothek herum bietet, um das Python-API zu erhalten.
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
