DNF (programvare)
DNF | |||
---|---|---|---|
Utvikler(e) | Fedora Project, Red Hat | ||
Utgitt | 11. mai 2015 | ||
Nyeste versjon | 5.2.7.0 (12. november 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 | Pakkebehandler | ||
Lisens | GPLv2 | ||
Nettsted | rpm-software-management.github.io (en) | ||
Forgjenger | Yellow dog Updater | ||
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 29. oktober 2024.
Bruk
[rediger | rediger kilde]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]
Libsolv
[rediger | rediger kilde]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
[rediger | rediger kilde]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
[rediger | rediger kilde]Yellowdog Updater, Modified
[rediger | rediger kilde]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]
DNF 1
[rediger | rediger kilde]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]
DNF2 - DNF4
[rediger | rediger kilde]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
[rediger | rediger kilde]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 tok i bruk DNF 5 den 29. oktober 2024.[18]
Referanser
[rediger | rediger kilde]- ^ «5.2.7.0». 12. november 2024. Besøkt 13. november 2024.
- ^ a b c d «The dnf Open Source Project on Open Hub: Languages Page». Open Hub. Besøkt 2. mai 2024.
- ^ a b c d e f g h i «The dnf5 Open Source Project on Open Hub: Languages Page». Open Hub. Besøkt 2. mai 2024.
- ^ Aleksandersen, Daniel (5. juli 2017). «Use DNF rather than PackageKit on Fedora». Ctrl blog. Archived from the original on 7. august 2017. Besøkt 7. august 2017.
- ^ «Changes/Replace yumex-dnf with dnfdragora - Fedora Project Wiki». fedoraproject.org. Archived from the original on 27. september 2021. Besøkt 27. september 2021.
- ^ «F27 Self Contained Change: Replace Yumex-DNF with dnfdragora - devel - Fedora Mailing-Lists». lists.fedoraproject.org (på engelsk). Archived from the original on 27. september 2021. Besøkt 27. september 2021.
- ^ Larabel, Michael (5. september 2016). «Mageia To Offer DNF, But Will Keep Using URPMI By Default». Phoronix. Archived from the original on 6. desember 2017. Besøkt 19. april 2024.
- ^ Matteson, Scott (30. mars 2019). «What's new with Red Hat Enterprise Linux 8 and Red Hat Virtualization». TechRepublic. Archived from the original on 24. september 2019. Besøkt 19. april 2024.
- ^ a b c Edge, Jake (15. januar 2014). «DNF and Yum in Fedora». LWN.net. Besøkt 29. mars 2015.
- ^ a b c openSUSE/libsolv, github.com
- ^ rpm-software management / libdnf, github.com
- ^ Brown, Robert G. «YUM (Yellowdog Updater, Modified) HOWTO - Introduction». Duke Physics. Besøkt 12. juli 2013.
- ^ «Will DNF Replace Yum?». Besøkt 28. mai 2015.
- ^ «Fedora 22 Released, See What`s New [Workstation]». Besøkt 28. mai 2015.
- ^ DNF 2.0.0 and DNF-PLUGINS-CORE 1.0.0 has been released, rpm-software-management.github.io, 20. juni 2016
- ^ Daniel Mach , Jaroslav Mracek: Announcing DNF 3 development, rpm-software-management.github.io, 22. mars 2018
- ^ Jake Edge: DNF 3: better performance and a move to C++, LWNH, 28. mars 2018
- ^ a b c d e f g h Switch to dnf5, fedoraproject.org, 12. april 2024
- ^ a b c Jack Wallen: How to install DNF5 on Fedora 39 for faster application installation and management, zdnet.com, 13. november 2023
Eksterne lenker
[rediger | rediger kilde]- (en) Offisielt nettsted
- (en) DNF – kategori av bilder, video eller lyd på Commons