27 'DNF' (Fork of Yum) naredbe za upravljanje RPM paketima u Linuxu


DNF aka Dandified YUM je upravitelj paketa sljedeće generacije za RPM baziranu distribuciju. Prvi put je predstavljen u Fedori 18 i zamijenio je YUM uslužni program u nedavnom izdanju Fedore 22.

DNF ima za cilj poboljšanje uskih grla YUM, a to su performanse, upotreba memorije, rezolucija zavisnosti, brzina i mnogo drugih faktora. DNF upravlja paketima koristeći RPM, libsolv i biblioteku hawkey. Iako nije instaliran u CentOS-u i RHEL 7, možete ga yum, dnf i koristiti uz yum.

Možda biste željeli pročitati više o DNF-u ovdje:

  1. Razlozi iza zamjene Yum sa DNF

Najnovije stabilno izdanje DNF-a je 1.0 (u vrijeme pisanja posta) koje je objavljeno 11. maja 2015.. On (i sve prethodne verzije DNF-a) uglavnom je napisan na Pythonu i objavljen je pod GPL v2 licencom.

Instalacija DNF-a

DNF u nije dostupan u zadanom spremištu RHEL/CentOS 7. Međutim, Fedora 22 se isporučuje sa DNF-om koji je zvanično implementiran.

Da instalirate DNF na RHEL/CentOS sisteme, prvo morate instalirati i omogućiti epel-release spremište.

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

Iako nije etički koristiti „-y“ sa yum jer se preporučuje da vidite šta se instalira u vašem sistemu. Međutim, ako vam ovo nije bitno, možete koristiti '-y' sa yumom da sve instalirate automatski bez intervencije korisnika.

Zatim instalirajte DNF paket koristeći yum komandu iz epel-release spremišta.

yum install dnf

Nakon što je dnf uspješno instaliran, vrijeme je da vam pokažemo 27 praktične upotrebe dnf komandi s primjerima koji će vam pomoći da upravljate paketima u RPM distribuciji lako i efikasno.

1. Provjerite DNF verziju

Provjerite verziju DNF-a instaliranu na vašem sistemu.

dnf --version

2. Navedite omogućena DNF spremišta

Opcija 'repolist' sa dnf komandom će prikazati sva omogućena spremišta u vašem sistemu.

dnf repolist

3. Navedite sva omogućena i onemogućena DNF spremišta

Opcija 'repolist all' će ispisati sva omogućena/onemogućena spremišta u vašem sistemu.

dnf repolist all

4. Navedite sve dostupne i instalirane pakete koristeći DNF

Naredba “dnf list” će prikazati sve dostupne pakete iz svih spremišta i instaliranih paketa na vašem Linux sistemu.

dnf list

5. Navedite sve instalirane pakete koristeći DNF

Dok komanda “dnf list” prikazuje sve dostupne/instalirane pakete iz svih spremišta. Međutim, imate opciju da navedete samo instalirane pakete koristeći opciju “list Installed” kao što je prikazano ispod.

dnf list installed

6. Navedite sve dostupne pakete koristeći DNF

Slično, opcija “list available” će izlistati sve pakete koji su dostupni za instaliranje iz svih omogućenih spremišta.

dnf list available

7. Potražite paket koristeći DNF

Ako je incase, nemate pojma o paketu koji želite da instalirate, u takvoj situaciji možete koristiti opciju 'pretraži' sa dnf komandom za traženje paketa koji odgovara riječi ili nizu (recimo nano ).

dnf search nano

8. Pogledajte šta pruža fajl/podpaket?

Opcija dnf “pruža” pronalazi naziv paketa koji obezbjeđuje određenu datoteku/podpaket. Na primjer, ako želite pronaći ono što pruža „/bin/bash“ na vašem sistemu?

dnf provides /bin/bash

9. Dobijte detalje paketa koristeći DNF

Pretpostavimo da želite saznati informacije o paketu prije nego što ga instalirate na sistem, možete koristiti prekidač “info” da dobijete detaljne informacije o paketu (recimo nano) kao što je dolje.

dnf info nano

10. Instalirajte paket s DNF-om

Da instalirate paket pod nazivom nano, samo pokrenite naredbu ispod, ona će automatski riješiti i instalirati sve potrebne zavisnosti za paket nano.

dnf install nano

11. Ažuriranje paketa koristeći DNF

Možete ažurirati samo određeni paket (recimo systemd) i ostaviti sve na sistemu netaknuto.

dnf update systemd

12. Provjerite ažuriranja sistema koristeći DNF

Provjerite ažuriranja za sve sistemske pakete instalirane u sistem jednostavno kao.

dnf check-update

13. Ažurirajte sve sistemske pakete koristeći DNF

Možete ažurirati cijeli sistem uključujući sve instalirane pakete sa sljedećim naredbama.

dnf update
OR
dnf upgrade

14. Uklonite/izbrišite paket koristeći DNF

Da biste uklonili ili izbrisali bilo koji neželjeni paket (recimo nano), možete koristiti “remove” ili “erase” prekidač sa dnf komandom da ga uklonite .

dnf remove nano
OR
dnf erase nano

15. Uklonite siroče pakete koristeći DNF

Oni paketi koji su instalirani da zadovolje ovisnost mogu biti beskorisni ako ih ne koriste druge aplikacije. Da biste uklonili te pakete siročad, izvršite naredbu ispod.

dnf autoremove

16. Uklonite keširane pakete koristeći DNF

Mnogo vremena se susrećemo sa zastarjelim zaglavljima i nedovršenim transakcijama što rezultira greškom prilikom izvršavanja dnf-a. Možemo očistiti sve keširane pakete i zaglavlja koja sadrže informacije o udaljenom paketu jednostavnim izvršavanjem.

dnf clean all

17. Dobijte pomoć za određenu DNF naredbu

Možete dobiti pomoć bilo koje specifične dnf komande (recimo clean) samo izvršavanjem naredbe ispod.

dnf help clean

18. Navedite sve DNF naredbe i opcije

Da biste naveli pomoć za sve dostupne dnf komande i opcije jednostavno ukucajte.

dnf help

19. Pogledajte istoriju DNF-a

Možete pozvati dnf history da pogledate listu već izvršenih dnf komandi. Na ovaj način možete biti svjesni šta je instalirano/uklonjeno s vremenskom oznakom.

dnf history

20. Navedite sve grupne pakete

Komanda “dnf grouplist” će ispisati sve dostupne ili instalirane pakete, ako ništa nije spomenuto, ispisat će sve poznate grupe.

dnf grouplist

21. Instalirajte grupni paket koristeći DNF

Da biste instalirali Grupu paketa u paketu kao grupni paket (recimo Obrazovni softver) jednostavno kao.

dnf groupinstall 'Educational Software'

22. Ažurirajte grupni paket

Ažurirajmo grupni paket (recimo Obrazovni softver) izvršavanjem donje naredbe.

dnf groupupdate 'Educational Software'

23. Uklonite grupni paket

Možemo ukloniti grupni paket (recimo Obrazovni softver) kao.

dnf groupremove 'Educational Software'

24. Instalirajte paket iz određenog spremišta

DNF omogućava instaliranje bilo kojeg specifičnog paketa (recimo phpmyadmin) iz repo (epel) jednostavno kao,

dnf --enablerepo=epel install phpmyadmin

25. Sinhronizirajte instalirane pakete sa stabilnim izdanjem

Komanda “dnf distro-sync” će pružiti neophodne opcije za sinhronizaciju svih instaliranih paketa na najnoviju stabilnu verziju dostupnu iz bilo kojeg omogućenog spremišta. Ako nijedan paket nije odabran, svi instalirani paketi se sinkroniziraju.

dnf distro-sync

26. Ponovo instalirajte paket

Komanda “dnf reinstall nano” će ponovo instalirati već instalirani paket (recimo nano).

dnf reinstall nano

27. Vratite paket na stariju verziju

Opcija “downgrade” će vratiti imenovani paket (recimo acpid) na nižu verziju ako je moguće.

dnf downgrade acpid
Sample Output
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 zapažanje: DNF nije smanjio paket kao što bi trebalo. Takođe je prijavljen kao greška.

Zaključak

DNF je najsavremeniji paketski menadžer YUM. Ima tendenciju da obavlja dosta procesa automatski, što neće biti pohvaljeno od strane mnogih iskusnih Linux sistemskih administratora, kao što vjerujem. Kao primjer:

  1. --skip-broken ne prepoznaje DNF i nema alternative.
  2. Ne postoji ništa poput naredbe „resolvedep“ kako god da pokrenete dnf provide.
  3. Ne postoji naredba „deplist“ za pronalaženje zavisnosti paketa.
  4. Izuzimate repo, znači da se izuzimanje primjenjuje na sve operacije, za razliku od yum-a koji te repo isključuje samo u vrijeme instalacije i ažuriranja, itd.

Nekoliko korisnika Linuxa nije zadovoljno načinom na koji se Linux ekosistem kreće. Prvo je Systemd uklonio init system v, a sada će DNF prije zamijeniti YUM u Fedora 22 i kasnije u RHEL-u i CentOS-u.

Šta ti misliš? su distribucije i cijeli Linux ekosistem ne cijeni svoje korisnike i kreće se protiv njihove volje. Takođe se često kaže u IT industriji – “Zašto popraviti, ako nije pokvaren?”, a ni init System V nije pokvaren niti YUM.

To je sve za sada. Molimo vas da mi kažete svoje vrijedne misli u komentarima ispod. Lajkujte i podijelite nas i pomozite nam da se širimo.