Vývojáři Fedora Linux plánují přejít na nový balíčkový manažer Microdnf místo aktuálně používaného DNF. Prvním krokem na cestě k migraci bude plánované významné aktualizace Microdnf ve verzi Fedora Linux 38, které bude funkčně blízké DNF a v některých oblastech ho dokonce překoná. Nová verze Microdnf má podporovat všechny základní funkce DNF, avšak při zachování vysokého výkonu a kompaktnosti.
Klíčovým rozdílem Microdnf od DNF je použití programovacího jazyka C místo Pythonu, což umožňuje zbavit se velkého množství závislostí. Původně byl Microdnf vyvinut jako zjednodušená varianta DNF určená pro používání v kontejnerech Docker, která nevyžaduje instalaci Pythonu. Nyní plánují vývojáři Fedory dotáhnout Microdnf na úroveň DNF a postupně plně nahradit DNF Microdnf.
Základem Microdnf je knihovna libdnf5, vyvíjená v rámci projektu DNF 5. Hlavní myšlenkou DNF 5 je přepsání základních operací správy balíčků v jazyce C++ a jejich přesun do samostatné knihovny s vytvořením vícevrstvé obálky pro udržení Python API.
Nová verze Microdnf bude také využívat na pozadí běžící proces DNF Daemon, který nahradí funkcionalitu PackageKit a poskytne rozhraní pro správu balíčků a aktualizací v grafických prostředích. Na rozdíl od PackageKit bude DNF Daemon poskytovat podporu pouze formátu RPM.
Microdnf, libdnf5 a DNF Daemon plánují na prvním stupni nasazení dodávat paralelně s tradičními nástroji DNF. Po dokončení projektu nahradí nový balíček takové balíčky jako dnf, python3-dnf, python3-hawkey, libdnf, dnfdragora a python3-dnfdaemon.
Mezi oblastmi, ve kterých Microdnf překonává DNF, se vyznačuje: přehlednější indikace pokroku při provádění operací; vylepšená implementace transakční tabulky; schopnost zobrazit ve zprávách o provedených transakcích informace vnucené skripty zabudovanými do balíčků (scriplets); podpora použití lokálních RPM balíčků pro transakce; pokročilejší systém automatického doplňování příkazů pro bash; podpora provádění příkazu builddep bez instalace Pythonu v systému.
Mezi nevýhodami přechodu distribuce na Microdnf se uvádí změna struktury interních databází a oddělené zpracování databáze od DNF, což neumožní vidět v Microdnf transakce s balíčky provedené v DNF a naopak. Kromě toho se v Microdnf neplánuje zachování 100% kompatibility s DNF na úrovni příkazů a možností příkazového řádku. Také se vyskytnou určité rozdíly v chování. Například odstranění balíčku nepovede k odstranění souvisejících závislostí, které nejsou používány v jiných balíčcích.
Zdroj: opennet.ru
