From Wikipedia, the free encyclopedia
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 | |||
---|---|---|---|
![]() | |||
![]() | |||
Utvikler(e) | Fedora Project, Red Hat | ||
Utgitt | 11. mai 2015 | ||
Nyeste versjon | 5.2.4.0 (26. juni 2024)[1] | ||
Kodelager | https://github.com/rpm-software-management/dnf, https://github.com/rpm-software-management/dnf5 | ||
Operativsystem | Fedora Red Hat Enterprise Linux CentOS | ||
Skrevet i | Python,[2] C++,[3] XML,[2] CMake,[2] Skallskript,[2] Python,[3] CMake,[3] XML,[3] Ruby,[3] Structured Query Language,[3] C,[3] Perl,[3] Skallskript[3] | ||
Type | Pakkesystem | ||
Lisens | GPLv2 | ||
Nettsted | rpm-software-management.github.io (en) | ||
Forgjenger | Yellow dog Updater | ||
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 vil ta i bruk DNF 5 høsten 2024.
Programvaren PackageKit, som fungerer som en backend til biblioteket libdnf,[4] tilbyr et grafisk brukergrensesnitt for DNF. Dnfdragora ble senere utviklet for Fedora 27 som en annen alternativ grafisk frontend for DNF.[5][6]
Den 30. september 2019 ble DNF et alternativt pakkesystem i Mageia versjon 6. Det er mulig at det blir standard en gang i fremtiden.[7]
I Red Hat Enterprise Linux versjon 8, og de avledede distribusjonene CentOS versjon 8, AlmaLinux og Rocky Linux, er «yum» et alias for DNF.[8]
DNF bruker det eksterne biblioteket libsolv til avhengighetsoppløsning.[9]
Libsolv er implementert i programmeringsspråket C og er lisensiert under den «nye» eller «modifiserte» BSD-lisensen.[10]
Libsolv bruker en «tilfredsstillende» algoritme for å løse opp i programvareavhengigheter og lese programvarelagre.[10]
Libsolv bruker også en «oppslagsverk-tilnærmelse» for å lagre og hente pakker og avhengighetsinformasjon på en rask måte som krever liten plass.[10]
Tidligere benyttet DNF ikke libsolv direkte, men via biblioteket hawkey. Dette gjorde det mulig å gi programmeringsgrensesnitt for andre programmeringsspråk enn Python.[9]
I 2017 opphørte hawkey å bli videreutviklet. All dens funksjonalitet ble integrert i libdnf.[11]
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+
Utdypende artikler: Yellow dog Updater, Modified og Red Hat Linux
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.[12]
Det som etterhvert ble et økende problem for YUM, var dårlig ytelse, høyt minnebruk og treghet i dens iterative avhengighetsoppløsning.[9]
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».[13] Det ble standard pakkesystem i Fedora 22 den 26. mai 2015.[14]
DNF 2 ble lansert 20. juni 2016,[15] DNF 3 ble lansert 22. mars 2018[16][17] og DNF 4 ble lansert i 2022.
DNF 5 tilbyr en konsistent brukeropplevelse på tvers av servere, arbeidsstasjoner og beholdere, og er et felles pakkesystem på disse plattformene.[18]
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.[18]
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.[18]
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.[18]
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.[18][19]
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.[18][19]
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.[18][19]
Fedora 41 vil ta i bruk DNF 5 i oktober 2024.[18]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.