DNF, alias Dandified YUM, è un Package Manager di ultima generazione per Distribuzioni basate su RPM. È stato introdotto per la prima volta in Fedora 18 e ha sostituito l’utilità YUM nell’ultima versione di Fedora 22.
DNF mira a migliorare i punti critici di YUM, ovvero Prestazioni, Utilizzo della Memoria, Risoluzione delle Dipendenze, Velocità e molti altri fattori. DNF gestisce i pacchetti utilizzando RPM, libsolv e la libreria hawkey. Anche se non è preinstallato in CentOS e RHEL 7, è possibile installare e utilizzare DNF insieme a YUM tramite yum.
Puoi leggere ulteriori informazioni su DNF qui:
La versione stabile più recente di DNF è la 1.0 (al momento della stesura di questo post), rilasciata l’ 11 maggio 2015. È principalmente scritto in Python (così come tutte le versioni precedenti di DNF) ed è rilasciato con licenza GPL v2.
L’installazione di DNF
DNF non è disponibile nel repository predefinito di RHEL/CentOS 7. Tuttavia, Fedora 22 include ufficialmente DNF.
Per installare DNF sui sistemi RHEL/CentOS, è necessario prima installare ed abilitare il repository epel-release.
# yum install epel-release OR # yum install epel-release -y
Anche se non è etico utilizzare ‘-y‘ con yum, in quanto è consigliabile vedere cosa viene installato nel sistema, se ciò non ti importa molto, puoi utilizzare ‘-y’ con yum per installare automaticamente tutto senza l’intervento dell’utente.
Successivamente, installa il pacchetto DNF utilizzando il comando yum dal repository epel-release.
# yum install dnf
Dopo che dnf è stato installato con successo, è giunto il momento di mostrarti 27 utilizzi pratici dei comandi dnf con esempi che ti aiuteranno a gestire i pacchetti nelle distribuzioni basate su RPM in modo facile ed efficace.
1. Controlla la versione di DNF
Controlla la versione di DNF installata sul tuo sistema.
# dnf --version
2. Elenca i repository DNF abilitati
L’opzione ‘repolist‘ con il comando dnf, visualizzerà tutti i repository abilitati nel tuo sistema.
# dnf repolist
3. Elenca tutti i repository DNF abilitati e disabilitati
L’opzione ‘repolist all‘ stamperà tutti i repository abilitati/disabilitati nel tuo sistema.
# dnf repolist all
4. Elenca tutti i pacchetti disponibili e installati utilizzando DNF
Il comando “dnf list” elencherà tutti i pacchetti disponibili da tutti i repository e i pacchetti installati sul tuo sistema Linux.
# dnf list
5. Elenca tutti i pacchetti installati utilizzando DNF
Mentre il comando “dnf list” mostra tutti i pacchetti disponibili/installati da tutti i repository. Tuttavia, hai l’opzione di elencare solo i pacchetti installati utilizzando l’opzione “list installed” come mostrato di seguito.
# dnf list installed
6. Elenca tutti i pacchetti disponibili utilizzando DNF
Allo stesso modo, l’opzione “list available“, elencherà tutti i pacchetti disponibili per essere installati da tutti i repository abilitati.
# dnf list available
7. Cerca un pacchetto utilizzando DNF
Se per caso non hai idea del pacchetto che desideri installare, in tale situazione puoi utilizzare l’opzione ‘search’ con il comando dnf per cercare il pacchetto che corrisponde alla parola o stringa (ad esempio nano).
# dnf search nano
8. Vedi cosa fornisce un file/sotto-pacchetto?
L’opzione dnf “provides” trova il nome del pacchetto che fornisce un file/sotto-pacchetto specifico. Ad esempio, se desideri scoprire cosa fornisce ‘/bin/bash’ sul tuo sistema?
# dnf provides /bin/bash
9. Ottieni i dettagli di un pacchetto utilizzando DNF
Supponiamo che tu voglia conoscere le informazioni di un pacchetto prima di installarlo sul sistema, puoi utilizzare lo switch “info” per ottenere informazioni dettagliate su un pacchetto (ad esempio nano) come segue.
# dnf info nano
10. Installa un pacchetto con DNF
Per installare un pacchetto chiamato nano, esegui semplicemente il comando sottostante risolverà automaticamente e installerà tutte le dipendenze necessarie per il pacchetto nano.
# dnf install nano
11. Aggiornamento di un pacchetto utilizzando DNF
È possibile aggiornare solo un pacchetto specifico (ad esempio systemd) e lasciare intatto tutto il resto del sistema.
# dnf update systemd
12. Controllare gli aggiornamenti di sistema utilizzando DNF
Controllare gli aggiornamenti di tutti i pacchetti di sistema installati nel sistema semplicemente come segue.
# dnf check-update
13. Aggiornare tutti i pacchetti di sistema utilizzando DNF
È possibile aggiornare l’intero sistema, compresi tutti i pacchetti installati, con i seguenti comandi.
# dnf update OR # dnf upgrade
14. Rimuovere/Eliminare un pacchetto utilizzando DNF
Per rimuovere o eliminare qualsiasi pacchetto indesiderato (ad esempio nano), è possibile utilizzare lo switch “remove” o “erase” con il comando dnf per rimuoverlo.
# dnf remove nano OR # dnf erase nano
15. Rimuovere i pacchetti orfani utilizzando DNF
I pacchetti che sono stati installati per soddisfare le dipendenze possono essere inutili se non vengono utilizzati da altre applicazioni. Per rimuovere quei pacchetti orfani eseguire il comando seguente.
# dnf autoremove
16. Rimuovere i pacchetti memorizzati nella cache utilizzando DNF
A lot of time we encounter out-of-date headers and unfinished transactions which results into error while executing dnf. We may clean all the cached packages and headers containing remote package information simply by executing.
# dnf clean all
17. Ottenere aiuto su un comando DNF specifico
È possibile ottenere aiuto su un comando dnf specifico (ad esempio clean) semplicemente eseguendo il comando seguente.
# dnf help clean
18. Elenca tutti i comandi e le opzioni di DNF
Per visualizzare l’elenco di tutti i comandi e le opzioni dnf disponibili, digitare semplicemente.
# dnf help
19. Visualizzare la cronologia di DNF
È possibile chiamare la cronologia di dnf per visualizzare l’elenco dei comandi dnf già eseguiti. In questo modo è possibile sapere cosa è stato installato/rimosso con il timestamp.
# dnf history
20. Elenca tutti i pacchetti di gruppo
Il comando “dnf grouplist” stamperà tutti i pacchetti disponibili o installati, se non viene menzionato nulla, elencherà tutti i gruppi conosciuti.
# dnf grouplist
21. Installare un pacchetto di gruppo usando DNF
Per installare un gruppo di pacchetti raggruppati insieme come pacchetto di gruppo (ad esempio Software educativo) semplicemente come.
# dnf groupinstall 'Educational Software'
22. Aggiornare un pacchetto di gruppo
Aggiorniamo un pacchetto di gruppo (ad esempio Software educativo) eseguendo il comando sottostante.
# dnf groupupdate 'Educational Software'
23. Rimuovere un pacchetto di gruppo
Possiamo rimuovere il pacchetto di gruppo (ad esempio Software educativo) come.
# dnf groupremove 'Educational Software'
24. Installare un pacchetto da un repository specifico
DNF rende possibile installare qualsiasi pacchetto specifico (ad esempio phpmyadmin) da un repo (epel) semplicemente come,
# dnf --enablerepo=epel install phpmyadmin
25. Sincronizzare i pacchetti installati alla versione stabile
Il comando “dnf distro-sync” fornirà le opzioni necessarie per sincronizzare tutti i pacchetti installati alla versione più recente disponibile da qualsiasi repository abilitato. Se non viene selezionato alcun pacchetto, vengono sincronizzati tutti i pacchetti installati.
# dnf distro-sync
26. Reinstallare un pacchetto
Il comando “dnf reinstalla nano” reinstalla un pacchetto già installato (ad esempio nano).
# dnf reinstall nano
27. Effettuare il downgrade di un pacchetto
L’opzione “downgrade” degrada il pacchetto nominato (ad esempio acpid) alla versione inferiore se possibile.
# dnf downgrade acpid
Output di esempio
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.
La mia osservazione: DNF non ha declassato il pacchetto come dovrebbe. È stato anche segnalato come bug.
Conclusione
DNF è lo stato superiore del Package Manager YUM all’avanguardia. Tende a eseguire molto automaticamente, il che non sarà apprezzato da molti amministratori di sistema Linux esperti, a mio parere. Come esempio:
--skip-broken
non è riconosciuto da DNF e non c’è un’alternativa.- Non c’è niente come il comando ‘resolvedep‘, tuttavia è possibile eseguire dnf provides.
- Non c’è il comando ‘deplist‘ per trovare le dipendenze del pacchetto.
- Escludi un repository, significa che l’esclusione si applica a tutte le operazioni, a differenza di yum che esclude quei repository solo al momento dell’installazione e degli aggiornamenti, ecc.
Molti utenti Linux non sono contenti del modo in cui si sta muovendo l’Ecosistema Linux. Prima Systemd ha rimosso il sistema init v e ora DNF sostituirà presto YUM in Fedora 22 e successivamente in RHEL e CentOS.
Cosa ne pensi? Le distribuzioni e l’intero ecosistema Linux non stanno apprezzando i propri utenti e si stanno muovendo contro la loro volontà. È spesso detto nell’industria IT – “Perché aggiustare, se non è rotto?”, e né il sistema init V è rotto né YUM.
Questo è tutto per ora. Per favore fatemi sapere i vostri preziosi pensieri nei commenti qui sotto. Mettete mi piace e condividete con noi per aiutarci a diffondere.
Source:
https://www.tecmint.com/dnf-commands-for-fedora-rpm-package-management/