Zoeken op website

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:

  1. 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:

  1. --skip-broken wordt niet herkend door DNF en er is geen alternatief.
  2. Er gaat niets boven de opdracht ‘resolvedep’, maar u kunt ook dnf provide uitvoeren.
  3. Er is geen opdracht ‘deplist’ om de pakketafhankelijkheid te vinden.
  4. 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.