27 DNF (Fork of Yum) ukazi za upravljanje paketov RPM v Linuxu


DNF aka Dandified YUM je naslednja generacija upravitelja paketov za distribucijo na osnovi RPM. Prvič je bil predstavljen v Fedori 18 in je nadomestil Fedoro 22.

DNF si prizadeva izboljšati ozka grla YUM-a, namreč zmogljivosti, porabe pomnilnika, ločljivosti odvisnosti, hitrosti in mnogih drugih dejavnikov. DNF izvaja upravljanje paketov z uporabo RPM, libsolv in knjižnice hawkey. Čeprav ni nameščen v CentOS in RHEL 7, ga lahko yum, dnf uporabljate skupaj z yumom.

Morda boste radi prebrali več o DNF tukaj:

  1. Razlogi za zamenjavo Yum z DNF

Zadnja stabilna izdaja DNF je 1.0 (v času pisanja prispevka), ki je bila izdana 11. maja 2015. Ta (in vse prejšnje različice DNF) je večinoma napisana v Pythonu in je izdana pod licenco GPL v2.

DNF ni na voljo v privzetem repozitoriju RHEL/CentOS 7. Vendar je Fedora 22 dostavljena z DNF, ki je bila uradno implementirana.

Če želite namestiti DNF na sisteme RHEL/CentOS, morate najprej namestiti in omogočiti repozitorij epel-release.

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

Čeprav ni etično uporabljati '-y' z yumom, saj je priporočljivo videti, kaj je nameščeno v vašem sistemu. Če pa vam to ni veliko pomembno, lahko uporabite y-y z yumom, da vse samodejno namestite brez posredovanja uporabnika.

Nato namestite paket DNF z ukazom yum iz repozitorija epel-release.

# yum install dnf

Po uspešni namestitvi dnf je čas, da vam pokažemo 27 praktičnih načinov uporabe ukazov dnf s primeri, ki vam bodo pomagali upravljati pakete v distribuciji, ki temelji na RPM, enostavno in učinkovito.

Preverite različico DNF, nameščeno v vašem sistemu.

# dnf --version

Možnost "repolist" z ukazom dnf bo prikazala vse omogočene repozitorije v vašem sistemu.

# dnf repolist

Možnost 'repolist all' bo natisnila vse omogočene/onemogočene repozitorije v vašem sistemu.

# dnf repolist all

Ukaz »dnf list« bo prikazal vse razpoložljive pakete iz vseh skladišč in nameščene pakete v vašem sistemu Linux.

# dnf list

Medtem ko ukaz »dnf list« prikazuje vse razpoložljive/nameščene pakete iz vseh skladišč. Vendar imate možnost, da navedete samo nameščene pakete z uporabo možnosti »seznam nameščenih«, kot je prikazano spodaj.

# dnf list installed

Podobno bo možnost »seznam na voljo« navedla vse pakete, ki so na voljo za namestitev iz vseh omogočenih repozitorijev.

# dnf list available

V primeru, da pojma ne poznate o paketu, ki ga želite namestiti, lahko v takem primeru z iskanjem paketa, ki se ujema z besedo ali nizom (recimo nano), uporabite možnost »iskanje« z ukazom dnf.

# dnf search nano

Možnost dnf "določa" poišče ime paketa, ki vsebuje določeno datoteko/podpaket. Če na primer želite najti, kaj v vašem sistemu vsebuje "/ bin/bash"?

# dnf provides /bin/bash

Predpostavimo, da želite informacije o paketu vedeti pred namestitvijo v sistem, s pomočjo stikala »info« dobite podrobne informacije o paketu (recimo nano), kot je prikazano spodaj.

# dnf info nano

Če želite namestiti paket z imenom nano, preprosto zaženite spodnji ukaz, ki bo samodejno razrešil in namestil vse potrebne odvisnosti za paket nano.

# dnf install nano

Lahko posodobite samo določen paket (recimo systemd) in pustite vse v sistemu nedotaknjeno.

# dnf update systemd

Preverite posodobitve za vse sistemske pakete, nameščene v sistem, preprosto kot.

# dnf check-update

Celoten sistem, vključno z vsemi nameščenimi paketi, lahko posodobite z naslednjimi ukazi.

# dnf update
OR
# dnf upgrade

Če želite odstraniti ali izbrisati kateri koli neželeni paket (recimo nano), lahko uporabite stikalo »odstrani« ali »izbriši« z ukazom dnf, da ga odstranite.

# dnf remove nano
OR
# dnf erase nano

Paketi, ki so bili nameščeni za zadovoljevanje odvisnosti, so lahko neuporabni, če jih druge aplikacije ne uporabljajo. Če želite odstraniti osirotele pakete, zaženite spodnji ukaz.

# dnf autoremove

Velikokrat naletimo na zastarele glave in nedokončane transakcije, kar pri izvajanju dnf povzroči napake. Vse predpomnjene pakete in glave, ki vsebujejo informacije o oddaljenih paketih, lahko očistimo preprosto z izvajanjem.

# dnf clean all

Pomoč za kateri koli določen ukaz dnf (recimo čisto) lahko dobite samo z izvajanjem spodnjega ukaza.

# dnf help clean

Če želite navesti pomoč za vse razpoložljive ukaze in možnosti dnf, preprosto vnesite.

# dnf help

Pokličete lahko zgodovino dnf, da si ogledate seznam že izvedenih dnf ukazov. Tako se lahko zavedate, kaj je bilo nameščeno/odstranjeno s časovnim žigom.

# dnf history

Ukaz “dnf grouplist” bo natisnil vse razpoložljive ali nameščene pakete, če ni omenjeno nič, pa bo seznam vseh znanih skupin.

# dnf grouplist

Če želite namestiti skupino paketov, združenih v skupinski paket (recimo izobraževalna programska oprema), preprosto kot.

# dnf groupinstall 'Educational Software'

Posodobimo paket skupine (recimo izobraževalna programska oprema) z izvajanjem spodnjega ukaza.

# dnf groupupdate 'Educational Software'

Skupinski paket (recimo izobraževalna programska oprema) lahko odstranimo kot.

# dnf groupremove 'Educational Software'

DNF omogoča namestitev katerega koli posebnega paketa (recimo phpmyadmin) iz repo (epel) tako preprosto kot,

# dnf --enablerepo=epel install phpmyadmin

Ukaz “dnf distro-sync” ponuja potrebne možnosti za sinhronizacijo vseh nameščenih paketov z najnovejšo stabilno različico, ki je na voljo v katerem koli omogočenem repozitoriju. Če ni izbran noben paket, se vsi nameščeni paketi sinhronizirajo.

# dnf distro-sync

Ukaz »dnf reinstall nano« bo znova namestil že nameščen paket (recimo nano).

# dnf reinstall nano

Možnost "znižaj" bo poimenovala paket (recimo acpid), če je mogoče, na nižjo različico.

# 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.

Moje opažanje: DNF ni znižal paketa, kot bi moral. Poročali so tudi o napaki.

Zaključek

DNF je zgornje stanje na koncu umetniškega upravitelja paketov YUM. Običajno samodejno opravi veliko obdelave, kar pa po mojem mnenju ne bo pohvalilo veliko izkušenih sistemskih skrbnikov Linuxa. Kot primer:

  1. --skip-broken DNF ne prepozna in ni druge možnosti.
  2. Nič ni tako kot ukaz 'resolvedep', vendar lahko zaženete dnf določa.
  3. Za iskanje odvisnosti paketa ni ukaza ‘deplist’.
  4. Če izključite repo, pomeni, da se izključitev uporablja za vse operacije, za razliko od yum, ki izključuje te repo reže samo v času namestitve in posodobitev itd.

Nekateri uporabniki Linuxa niso zadovoljni z gibanjem ekosistema Linux. Najprej je Systemd odstranil sistem init v in zdaj bo DNF prej nadomestil YUM v Fedori 22 in kasneje v RHEL in CentOS.

Kaj misliš? so distribucije in celoten ekosistem Linuxa ne ceni svojih uporabnikov in se premika proti njihovi volji. Prav tako se v IT industriji pogosto reče -\"Zakaj popraviti, če ni pokvarjen?", Niti sistem V ni pokvarjen niti YUM.

To je vse za zdaj. V spodnjih komentarjih mi sporočite svoje dragocene misli. Všečkajte nas in delite z nami ter nam pomagajte, da se širimo.