DNF (programvare)

DNF eller Dandified Yum er en front-end til pakkesystemet RPM Package Manager (RPM). Den er et presentasjonslag som letter henting og installering av RPMer fra programvarelagre. DNF utfører også avhengighetsoppløsning.

DNF benyttes av Fedora, Red Hat Enterprise Linux, CentOS, OpenMandriva Lx, OpenSUSE og andre Linuxdistribusjoner. DNF er etterfølgeren til Yellow dog Updater, Modified (yum). 

DNF ble lansert 18. januar 2012. Den 15. januar 2013 ble det innført som en opsjon i Fedora 18. Det ble standard pakkesystem i Fedora 22 den 26. mai 2015. Fedora 41 tok i bruk DNF 5 den 29. oktober 2024.

Bruk
Programvaren PackageKit, som fungerer som en backend til biblioteket libdnf, tilbyr et grafisk brukergrensesnitt for DNF. Dnfdragora ble senere utviklet for Fedora 27 som en annen alternativ grafisk frontend for DNF.

Den 30. september 2019 ble DNF et alternativt pakkesystem i Mageia versjon 6. Det er mulig at det blir standard en gang i fremtiden.

I Red Hat Enterprise Linux versjon 8, og de avledede distribusjonene CentOS versjon 8, AlmaLinux og Rocky Linux, er «yum» et alias for DNF.

Libsolv
DNF bruker det eksterne biblioteket libsolv til avhengighetsoppløsning.

Libsolv er implementert i programmeringsspråket C og er lisensiert under den «nye» eller «modifiserte» BSD-lisensen.openSUSE/libsolv, github.com 

Libsolv bruker en «tilfredsstillende» algoritme for å løse opp i programvareavhengigheter og lese programvarelagre.

Libsolv bruker også en «oppslagsverk-tilnærmelse» for å lagre og hente pakker og avhengighetsinformasjon på en rask måte som krever liten plass.

Tidligere benyttet DNF ikke libsolv direkte, men via biblioteket hawkey. Dette gjorde det mulig å gi programmeringsgrensesnitt for andre programmeringsspråk enn Python.

I 2017 opphørte hawkey å bli videreutviklet. All dens funksjonalitet ble integrert i libdnf.rpm-software management / libdnf, github.com

libdnf
Libdnf er et høynivå programmeringsgrensesnitt for DNF og underliggende biblioteker.

Det er implementert i programmeringsspråkene C og C++ og lisensiert under GNU Lesser General Public License 2.1+

 Utvikling
 Yellowdog Updater, Modified

DNF har sin opprinnelse i Yellowdog UPdater, som ble utviklet av Terra Soft Solutions i årene 1999–2001, som et grafisk installasjonsprogram for Yellow Dog Linux. Yellowdog UPdater ble oppdatert og videreutviklet, og i juni 2002 ble programmet lansert som Yellow dog Updater, Modified (YUM). Dette pakkesystemet ble brukt på Red Hat Linux versjon 8 «psyche» og versjon 9 «shrike». Og fra Red Hat Linux fant det veien videre til Fedora og Red Hat Enterprise Linux.

Det som etterhvert ble et økende problem for YUM, var dårlig ytelse, høyt minnebruk og treghet i dens iterative avhengighetsoppløsning.

DNF 1
Resultatet ble at Red Hat utviklet DNF eller Dandified Yum, en «dandifisert» utgave av YUM. «Dandifisert» betyr i denne sammenhengen noe utmerket i sin klasse. DNF ble lansert 18. januar 2012. Den 15. januar 2013 ble det innført som en opsjon i Fedora 18 «Spherical Cow». Det ble standard pakkesystem i Fedora 22 den 26. mai 2015.

DNF2 - DNF4
DNF 2 ble lansert 20. juni 2016,DNF 2.0.0 and DNF-PLUGINS-CORE 1.0.0 has been released, rpm-software-management.github.io, 20. juni 2016 DNF 3 ble lansert 22. mars 2018Daniel Mach , Jaroslav Mracek: Announcing DNF 3 development, rpm-software-management.github.io, 22. mars 2018Jake Edge: DNF 3: better performance and a move to C++, LWNH, 28. mars 2018 og DNF 4 ble lansert i 2022.

DNF 5
DNF 5 tilbyr en konsistent brukeropplevelse på tvers av servere, arbeidsstasjoner og beholdere, og er et felles pakkesystem på disse plattformene.Switch to dnf5, fedoraproject.org, 12. april 2024

Kommandoer for DNF 4, YUM og MicroDNF erstattes av et felles grensesnitt, hvor konfiguasjonsfiler blir delt. API-brukere vil støte på enhetlig kodestil og navnekonvensjoner. Ulike skriptspråkgrensesnitt leveres fra en enkelt kilde ved hjelp av SWIG-bindinger (Simplified Wrapper and Interface Generator). Tidligere foregikk bindingene via CPython og SWIG.

En konsekvens er lavere vedlikeholdskostnader. Mange funksjonelle duplikater i DNF 4 er fjernet, delvis fordi funksjonene i  PackageKit og andre biblioteker er integrerte i et felles libdnf-bibliotek. Tilleggsmoduler (programvareutvidelser) blir integrert i samme programvarepakke som inneholder kjernefunksjonaliteten.

En annen konsekvens er høyere ytelse. Innlasting og nedlasting av metadata fra programvarelageret skjer nå samtidig. Pakkespørringsoperasjoner, inkludert behandling av mange kommandolinjeargumenter, har blitt betydelig raskere.

En tredje virkning er et redusert avtrykk. DNF 5 har flere funksjoner og krever ikke avhengighet av Python. Det reduserer også antall programvareadministrasjonsverktøy ved å erstatte både DNF 4 og microDNF.Jack Wallen: How to install DNF5 on Fedora 39 for faster application installation and management, zdnet.com, 13. november 2023

Installasjonsstørrelsen på DNF 5 i en tom beholder er ca. 60% mindre enn DNF 4. Størrelsen på DNF 5 er omkring 114 MB, mot 165 MB i DNF 4.

DNF 4, microDNF og PackageKit brukte sitt eget hurtigminne, noe som har ført til en betydelig redundans av metadata. DNF 5 benytter et enkelt hurtigminne for metadata, og eliminerer denne redundansen.

Fedora 41 tok i bruk DNF 5 den 29. oktober 2024.

Referanser

 Eksterne lenker 


Kategori:Programvare for Red Hat Enterprise Linux
Kategori:Programvare for Fedora
Kategori:Programvare fra 2013
Kategori:2013 i USA