27 'DNF'-opdrachten (Fork of Yum) voor RPM-pakketbeheer in Linux
DNF oftewel Dandified YUM is een pakketbeheerder van de volgende generatie voor op RPM gebaseerde distributie. Het werd voor het eerst geïntroduceerd in Fedora 18 en heeft het YUM-hulpprogramma vervangen in de recente uitgave van Fedora 22.
DNF is gericht op het verbeteren van de knelpunten van YUM, namelijk prestaties, geheugengebruik, afhankelijkheidsresolutie, snelheid en tal van andere factoren. DNF doet pakketbeheer met behulp van RPM, libsolv en Hawkey-bibliotheek. Hoewel het niet standaard wordt geïnstalleerd in CentOS en RHEL 7, kun je het naast yum gebruiken, dnf en gebruiken.
Misschien vind je het leuk om hier meer over DNF te lezen:
- Redenen achter het vervangen van Yum door DNF
De nieuwste stabiele release van DNF is 1.0 (op het moment dat dit bericht werd geschreven), die werd uitgebracht op 11 mei 2015. Het (en alle eerdere versies van DNF) is grotendeels geschreven in Python en wordt vrijgegeven onder de GPL v2-licentie.
Installatie van DNF
DNF is niet beschikbaar in de standaardrepository van RHEL/CentOS 7. Fedora 22 wordt echter geleverd met DNF officieel geïmplementeerd.
Om DNF op RHEL/CentOS systemen te installeren, moet u eerst de epel-release repository installeren en inschakelen.
yum install epel-release
OR
yum install epel-release -y
Hoewel het niet ethisch is om ‘-y’ met yum te gebruiken, omdat het aanbevolen is om te zien wat er in je systeem wordt geïnstalleerd. Als dit u echter niet zoveel uitmaakt, kunt u ‘-y’ met yum gebruiken om alles automatisch te installeren zonder tussenkomst van de gebruiker.
Installeer vervolgens het DNF-pakket met de opdracht yum vanuit de epel-release repository.
yum install dnf
Nadat dnf succesvol is geïnstalleerd, is het tijd om u het 27 praktische gebruik van dnf-opdrachten te laten zien met voorbeelden die u zullen helpen bij het beheren van pakketten in op RPM gebaseerde distributie gemakkelijk en effectief.
1. Controleer de DNF-versie
Controleer de versie van DNF die op uw systeem is geïnstalleerd.
dnf --version
2. Maak een lijst van ingeschakelde DNF-opslagplaatsen
De optie ‘repolist‘ met dnf-opdracht toont alle ingeschakelde opslagplaatsen op uw systeem.
dnf repolist
3. Maak een lijst van alle ingeschakelde en uitgeschakelde DNF-opslagplaatsen
De optie ‘alles opnieuw polijsten‘ zal alle ingeschakelde/uitgeschakelde opslagplaatsen op uw systeem afdrukken.
dnf repolist all
4. Maak een lijst van alle beschikbare en geïnstalleerde pakketten met behulp van DNF
Het commando “dnf list” zal alle beschikbare pakketten uit alle repository's en geïnstalleerde pakketten op je Linux-systeem weergeven.
dnf list
5. Maak een lijst van alle geïnstalleerde pakketten met behulp van DNF
Terwijl de opdracht “dnf list” alle beschikbare/geïnstalleerde pakketten uit alle repository's toont. U heeft echter de mogelijkheid om alleen de geïnstalleerde pakketten weer te geven met behulp van de optie “geïnstalleerde pakketten weergeven”, zoals hieronder weergegeven.
dnf list installed
6. Maak een lijst van alle beschikbare pakketten met behulp van DNF
Op dezelfde manier zal de optie “lijst beschikbaar” alle pakketten weergeven die beschikbaar zijn om te worden geïnstalleerd vanuit alle ingeschakelde opslagplaatsen.
dnf list available
7. Zoek naar een pakket met DNF
Als u geen idee heeft welk pakket u wilt installeren, kunt u in een dergelijke situatie de optie 'zoeken' gebruiken met de opdracht dnf om te zoeken naar het pakket dat overeenkomt met het woord of de tekenreeks (bijvoorbeeld nano ).
dnf search nano
8. Zie wat een bestand/subpakket levert?
De dnf-optie “provides” vindt de naam van het pakket dat een specifiek bestand/subpakket levert. Als u bijvoorbeeld wilt weten wat ‘/bin/bash‘ op uw systeem biedt?
dnf provides /bin/bash
9. Haal details van een pakket op met DNF
Laten we aannemen dat u de informatie van een pakket wilt weten voordat u het op het systeem installeert. U kunt de schakelaar “info” gebruiken om gedetailleerde informatie over een pakket (bijvoorbeeld nano) te krijgen, zoals hieronder.
dnf info nano
10. Installeer een pakket met DNF
Om een pakket genaamd nano te installeren, voert u gewoon de onderstaande opdracht uit. Het zal automatisch alle vereiste afhankelijkheden voor pakket nano oplossen en installeren.
dnf install nano
11. Een pakket bijwerken met DNF
U kunt alleen een specifiek pakket updaten (zeg systemd) en alles op het systeem onaangeroerd laten.
dnf update systemd
12. Controleer op systeemupdates met behulp van DNF
Controleer updates voor alle systeempakketten die op het systeem zijn geïnstalleerd, eenvoudigweg als.
dnf check-update
13. Update alle systeempakketten met DNF
U kunt het hele systeem, inclusief alle geïnstalleerde pakketten, bijwerken met de volgende opdrachten.
dnf update
OR
dnf upgrade
14. Een pakket verwijderen/wissen met DNF
Om een ongewenst pakket (bijvoorbeeld nano) te verwijderen of te wissen, kunt u de schakelaar “remove” of “erase” gebruiken met de opdracht dnf om het te verwijderen .
dnf remove nano
OR
dnf erase nano
15. Verwijder weespakketten met DNF
De pakketten die zijn geïnstalleerd om aan de afhankelijkheid te voldoen, kunnen nutteloos zijn als ze niet door andere toepassingen worden gebruikt. Om deze weespakketten te verwijderen, voert u de onderstaande opdracht uit.
dnf autoremove
16. Verwijder pakketten in de cache met DNF
Vaak komen we verouderde headers en onvoltooide transacties tegen, wat resulteert in fouten tijdens het uitvoeren van dnf. We kunnen alle in de cache opgeslagen pakketten en headers met pakketinformatie op afstand opschonen door eenvoudigweg uit te voeren.
dnf clean all
17. Krijg hulp bij specifieke DNF-opdrachten
U kunt hulp krijgen bij elk specifiek dnf-commando (bijvoorbeeld clean) door simpelweg het onderstaande commando uit te voeren.
dnf help clean
18. Maak een lijst van alle DNF-opdrachten en opties
Om hulp bij alle beschikbare dnf-opdrachten en opties weer te geven, typt u eenvoudigweg.
dnf help
19. Bekijk de geschiedenis van DNF
U kunt dnf-geschiedenis oproepen om de lijst met reeds uitgevoerde dnf-opdrachten te bekijken. Op deze manier kunt u met tijdstempel weten wat er is geïnstalleerd/verwijderd.
dnf history
20. Maak een lijst van alle groepspakketten
Het commando “dnf grouplist” zal alle beschikbare of geïnstalleerde pakketten afdrukken. Als er niets wordt vermeld, worden alle bekende groepen weergegeven.
dnf grouplist
21. Installeer een groepspakket met DNF
Om een groep pakketten te installeren die als groepspakket zijn gebundeld (bijvoorbeeld Educatieve software), eenvoudigweg als.
dnf groupinstall 'Educational Software'
22. Update een groepspakket
Laten we een groepspakket (bijvoorbeeld Educatieve software) bijwerken door de onderstaande opdracht uit te voeren.
dnf groupupdate 'Educational Software'
23. Verwijder een groepspakket
We kunnen het groepspakket (bijvoorbeeld Educatieve software) verwijderen als.
dnf groupremove 'Educational Software'
24. Installeer een pakket vanuit een specifieke repository
DNF maakt het mogelijk om elk specifiek pakket (bijvoorbeeld phpmyadmin) vanuit een repository (epel) zo eenvoudig te installeren als:
dnf --enablerepo=epel install phpmyadmin
25. Synchroniseer geïnstalleerde pakketten naar stabiele release
Het commando “dnf distro-sync” biedt de nodige opties om alle geïnstalleerde pakketten te synchroniseren met de meest recente stabiele versie die beschikbaar is vanuit elke ingeschakelde repository. Als er geen pakket is geselecteerd, worden alle geïnstalleerde pakketten gesynchroniseerd.
dnf distro-sync
26. Installeer een pakket opnieuw
Het commando “dnf restart nano” zal een reeds geïnstalleerd pakket opnieuw installeren (bijvoorbeeld nano).
dnf reinstall nano
27. Een pakket downgraden
De optie “downgrade” zal het genoemde pakket (bijvoorbeeld acpid) indien mogelijk downgraden naar een lagere versie.
dnf downgrade acpid
Voorbeelduitvoer
Using metadata from Wed May 20 12:44:59 2015
No match for available package: acpid-2.0.19-5.el7.x86_64
Error: Nothing to do.
Mijn observatie: DNF downgradet het pakket niet zoals het hoort. Het is ook gemeld als bug.
Conclusie
DNF is het allernieuwste pakketbeheer YUM. Het heeft de neiging om veel verwerking automatisch uit te voeren, wat niet zal worden geprezen door veel ervaren Linux-systeembeheerders, zoals ik geloof. Als voorbeeld:
--skip-broken
wordt niet herkend door DNF en er is geen alternatief.- Er gaat niets boven de opdracht ‘resolvedep’, maar u kunt ook dnf provide uitvoeren.
- Er is geen opdracht ‘deplist’ om de pakketafhankelijkheid te vinden.
- Je sluit een repository uit, wat betekent dat de uitsluiting van toepassing is op alle bewerkingen, in tegenstelling tot yum, dat deze repo's alleen uitsluit op het moment van installatie en updates, enz.
Verschillende Linux-gebruikers zijn niet blij met de manier waarop Linux Ecosystem zich ontwikkelt. Eerst verwijderde Systemd init system v en nu zal DNF YUM eerder vervangen in Fedora 22 en later in RHEL en CentOS.
Wat denk je? zijn distributies en het hele Linux-ecosysteem waardeert zijn gebruikers niet en beweegt niet tegen hun wil. Ook wordt er in de IT-industrie vaak gezegd: “Waarom repareren, als het niet kapot is?”, en noch init System V is kapot, noch YUM.
Dat is het voor nu. Laat me je waardevolle gedachten weten in de reacties hieronder. Like en deel ons en help ons verspreiden.