De ontwikkelaars van Fedora Linux zijn van plan om de distributie over te zetten naar de nieuwe pakketbeheerder Microdnf in plaats van de huidige DNF. De eerste stap op weg naar de migratie is een aanzienlijke update van Microdnf, gepland voor de release van Fedora Linux 38, die qua functionaliteit dichter bij DNF zal komen en op sommige gebieden zelfs beter zal presteren. Er wordt opgemerkt dat de nieuwe versie van Microdnf alle belangrijke mogelijkheden van DNF zal ondersteunen, terwijl het toch een hoge prestaties en compactheid behoudt.
Het belangrijkste verschil tussen Microdnf en DNF is het gebruik van de programmeertaal C voor de ontwikkeling in plaats van Python, wat een groot aantal afhankelijkheden elimineert. Microdnf werd oorspronkelijk ontwikkeld als een vereenvoudigde versie van DNF voor gebruik in Docker-containers, zonder dat Python geïnstalleerd hoeft te worden. Nu zijn de ontwikkelaars van Fedora van plan om Microdnf naar het niveau van DNF te brengen en uiteindelijk DNF volledig door Microdnf te vervangen.
Zij is gebaseerd op de libdnf5-bibliotheek, die wordt ontwikkeld binnen het DNF 5-project. Het belangrijkste idee van DNF 5 is om de basisbewerkingen voor pakketbeheer opnieuw te schrijven in C++ en deze functies in een aparte bibliotheek onder te brengen, met een wrapper rond deze bibliotheek om de Python API te behouden.
De nieuwe versie van Microdnf zal ook de achtergrondprocessen van DNF Daemon gebruiken, die de functionaliteit van PackageKit vervangt en een interface biedt voor het beheren van pakketten en updates in grafische omgevingen. In tegenstelling tot PackageKit zal DNF Daemon alleen ondersteuning bieden voor het RPM-formaat.
Microdnf, libdnf5 en DNF Daemon zijn van plan om in de eerste fase van de implementatie parallel aan de traditionele DNF-tools te worden geleverd. Zodra het project volledig is voorbereid, zal de nieuwe combinatie pakketten zoals dnf, python3-dnf, python3-hawkey, libdnf, dnfdragora en python3-dnfdaemon vervangen.
Onder de gebieden waarin Microdnf DNF overtreft, worden genoemd: een duidelijkere voortgangsindicator voor de uitvoering van opdrachten; verbeterde implementatie van transactie-tabellen; de mogelijkheid om rapporten over voltooide transacties te genereren met informatie die door de scripts in de pakketten (scriplets) wordt verstrekt; ondersteuning voor het gebruik van lokale RPM-pakketten voor transacties; een geavanceerd systeem voor het automatisch aanvullen van invoer voor bash; ondersteuning voor het uitvoeren van het builddep-commando zonder dat Python in het systeem hoeft te worden geïnstalleerd.
Een van de nadelen van de overgang van de distributie naar Microdnf is de wijziging van de interne database-structuur en de aparte verwerking van de database van DNF, waardoor het onmogelijk wordt om in Microdnf transacties met pakketten te zien die in DNF zijn uitgevoerd, en vice versa. Bovendien is het niet de bedoeling om 100% compatibiliteit met DNF te behouden op het niveau van commando's en opties in de opdrachtregel. Er zullen ook enkele verschillen in gedrag worden waargenomen. Bijvoorbeeld, het verwijderen van een pakket zal niet leiden tot het verwijderen van de gerelateerde afhankelijkheden die niet in andere pakketten worden gebruikt.
Bron: opennet.ru
