27 DNF (Fork of Yum) kommandoer for RPM Package Management i Linux


DNF aka Dandified YUM er en neste generasjons pakkeadministrator for RPM-basert distribusjon. Den ble først introdusert i Fedora 18, og den har erstattet Fedora 22.

DNF tar sikte på å forbedre flaskehalsene til YUM, nemlig ytelse, minnebruk, avhengighetsoppløsning, hastighet og mange andre faktorer. DNF gjør Package Management ved å bruke RPM, libsolv og hawkey-bibliotek. Selv om det ikke kommer per-installert i CentOS og RHEL 7, kan du yum, dnf og bruke det sammen med yum.

Du kan gjerne lese mer om DNF her:

  1. Grunner bak å erstatte Yum med DNF

Den siste stabile utgivelsen av DNF er 1.0 (på tidspunktet for skriving av innlegget) som ble utgitt 11. mai 2015. Den (og alle tidligere versjoner av DNF) er for det meste skrevet i Python og er utgitt under GPL v2-lisens.

DNF er ikke tilgjengelig i standarddepotet til RHEL/CentOS 7. Fedora 22 leveres imidlertid med DNF offisielt implementert.

For å installere DNF på RHEL/CentOS-systemer, må du først installere og aktivere epel-release repository.

# yum install epel-release
OR
# yum install epel-release -y

Selv om det ikke er etisk å bruke '-y' med yum, da det anbefales å se hva som blir installert i systemet ditt. Men hvis dette ikke betyr mye for deg, kan du bruke -y med yum for å installere alt automatisk uten brukers innblanding.

Installer deretter DNF-pakken ved å bruke yum-kommandoen fra epel-release repository.

# yum install dnf

Etter at dnf er installert vellykket, er det på tide å vise deg 27 praktisk bruk av dnf-kommandoer med eksempler som vil hjelpe deg å administrere pakker i RPM-basert distribusjon enkelt og effektivt.

Sjekk versjonen av DNF som er installert på systemet ditt.

# dnf --version

Alternativet 'repolist' med dnf-kommando, vil vise alle aktiverte repositories under systemet ditt.

# dnf repolist

Alternativet repoliser alle vil skrive ut alle de aktiverte/deaktiverte depotene under systemet ditt.

# dnf repolist all

Kommandoen dnf list vil vise alle tilgjengelige pakker fra alle depotene og installerte pakkene på Linux-systemet.

# dnf list

Mens kommandoen dnf list viser alle tilgjengelige/installerte pakker fra alle depotene. Du har imidlertid muligheten til å liste bare de installerte pakkene ved å bruke alternativet liste installert som vist nedenfor.

# dnf list installed

Tilsvarende vil alternativet liste tilgjengelig liste alle pakkene som er tilgjengelige for installering fra alle de aktiverte depotene.

# dnf list available

Hvis det er tilfelle, har du ingen anelse om pakken du vil installere, i en slik situasjon kan du bruke 'søk'-alternativet med dnf-kommandoen for å søke etter pakken som samsvarer med ordet eller strengen (si nano).

# dnf search nano

Alternativet dnf gir finner navnet på pakken som gir en spesifikk fil/underpakke. For eksempel, hvis du ønsker å finne hva som gir '/bin/bash' på systemet ditt?

# dnf provides /bin/bash

La oss anta at du vil vite informasjonen om en pakke før du installerer den på systemet, du kan bruke info-bryteren for å få detaljert informasjon om en pakke (si nano) som nedenfor.

# dnf info nano

For å installere en pakke kalt nano, bare kjør kommandoen nedenfor, den vil automatisk løse og installere alle nødvendige avhengigheter for pakken nano.

# dnf install nano

Du kan bare oppdatere en spesifikk pakke (si systemd) og la alt på systemet være urørt.

# dnf update systemd

Sjekk oppdateringer for alle systempakkene som er installert i systemet ganske enkelt.

# dnf check-update

Du kan oppdatere hele systemet inkludert alle installerte pakker med følgende kommandoer.

# dnf update
OR
# dnf upgrade

For å fjerne eller slette enhver uønsket pakke (si nano), kan du bruke remove eller slette-bryteren med dnf-kommandoen for å fjerne den.

# dnf remove nano
OR
# dnf erase nano

De pakkene som ble installert for å tilfredsstille avhengighet kan være ubrukelige hvis de ikke brukes av andre applikasjoner. For å fjerne disse foreldreløse pakkene, utfør kommandoen nedenfor.

# dnf autoremove

Mye tid vi møter utdaterte overskrifter og uferdige transaksjoner som resulterer i feil under utføring av dnf. Vi kan rense alle de hurtigbufrede pakkene og overskriftene som inneholder ekstern pakkeinformasjon ganske enkelt ved å kjøre.

# dnf clean all

Du kan få hjelp av en spesifikk dnf-kommando (si ren) bare ved å utføre kommandoen nedenfor.

# dnf help clean

For å liste hjelp på alle tilgjengelige dnf-kommandoer og alternativer, skriv ganske enkelt.

# dnf help

Du kan ringe til dnf-historikk for å se på listen over allerede utførte dnf-kommandoer. På denne måten kan du være klar over hva som ble installert/fjernet med tidsstempel.

# dnf history

Kommandoen dnf grouplist vil skrive ut alle tilgjengelige eller installerte pakker, hvis ingenting er nevnt, vil den liste alle kjente grupper.

# dnf grouplist

For å installere en gruppe med pakker samlet som gruppepakke (si pedagogisk programvare) ganske enkelt som.

# dnf groupinstall 'Educational Software'

La oss oppdatere en gruppepakke (si pedagogisk programvare) ved å utføre kommandoen nedenfor.

# dnf groupupdate 'Educational Software'

Vi kan fjerne gruppepakken (si pedagogisk programvare) som.

# dnf groupremove 'Educational Software'

DNF gjør det mulig å installere en hvilken som helst spesifikk pakke (si phpmyadmin) fra en repo (epel) så enkelt som,

# dnf --enablerepo=epel install phpmyadmin

Kommandoen dnf distro-sync vil gi nødvendige alternativer for å synkronisere alle installerte pakker til den nyeste stabile versjonen tilgjengelig fra et aktivert depot. Hvis ingen pakke er valgt, synkroniseres alle installerte pakker.

# dnf distro-sync

Kommandoen dnf reinstall nano vil installere en allerede installert pakke på nytt (si nano).

# dnf reinstall nano

Alternativet nedgradere vil nedgradere den navngitte pakken (si acpid) til lavere versjon hvis mulig.

# dnf downgrade acpid
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.

Min observasjon: DNF nedgraderer ikke pakken slik den skal. Det har også blitt rapportert som feil.

Konklusjon

DNF er den øverste toppmoderne pakkeforvalteren YUM. Det har en tendens til å gjøre mye prosessering automatisk, noe som ikke kommer til å bli rost av mange erfarne Linux-systemadministratorer, som jeg tror. Som et eksempel:

  1. --skip-broken gjenkjennes ikke av DNF, og det er ikke noe alternativ.
  2. Det er ingenting som 'resolvedep'-kommandoen, men du kan kjøre dnf provider.
  3. Det er ingen «deplist»-kommando for å finne pakkeavhengighet.
  4. Du ekskluderer en repo betyr at ekskluderingen gjelder for alle operasjoner, i motsetning til yum som utelukker disse repoene kun på tidspunktet for installasjon og oppdateringer osv.

Flere Linux-brukere er ikke fornøyde med måten Linux Ecosystem beveger seg på. Først fjernet Systemd init system v og nå vil DNF erstatte YUM tidligere i Fedora 22 og senere i RHEL og CentOS.

Hva tror du? er distribusjoner og hele Linux-økosystemet verdsetter ikke brukerne sine og beveger seg mot deres vilje. Også i IT-bransjen sies det ofte - Hvorfor fikse, hvis ikke ødelagt?, og verken init System V er ødelagt eller YUM.

Det er alt for nå. Gi meg beskjed om dine verdifulle tanker i kommentarene nedenfor. Lik og del oss og hjelp oss med å spre oss.