DNF o Dandified YUM è un fork del gestore di pacchetti YUM. È stato introdotto in Fedora 18 e su Fedora 22. Ora è diventato un gestore di pacchetti predefinito per la gestione dei pacchetti RPM su CentOS 8, RHEL 8 e Fedora.
DNF risolve tutti i problemi associati a yum, come prestazioni scadenti, utilizzo elevato della memoria, lentezza per la risoluzione delle dipendenze. DNF può essere definito come la prossima versione principale del gestore di pacchetti YUM. Attualmente, la versione più stabile di DNF è la versione 2.6.3
In questo tutorial, discuteremo i comandi DNF utilizzati per la gestione dei pacchetti. Questo articolo fungerà da cheat sheet per DNF. Allora iniziamo…..
Comando DNF
La sintassi per l'utilizzo del comando DNF è abbastanza simile all'utilizzo di YUM, quindi troverai molte somiglianze tra i due comandi.
Esempio:1) Elenca i repository abilitati
Per elencare tutti i repository abilitati sul sistema, esegui
[[email protected] ~]$ sudo dnf repolist [sudo] password for linuxtechi: repo id repo name status *epel Extra Packages for Enterprise Linux 7 - x86_64 11,989 *fedora Fedora 26 - x86_64 53,912 *updates Fedora 26 - x86_64 - Updates 9,405 virtualbox Fedora 26 - x86_64 - VirtualBox 10 [[email protected] ~]$
Esempio:2) Elenca tutti i repository (abilitati e disabilitati)
Se abbiamo bisogno di vedere tutti i repository che sono abilitati o disabilitati, dobbiamo eseguire seguendo
[[email protected] ~]$ sudo dnf repolist all
Esempio:3) Installazione di un pacchetto
Come yum, utilizziamo "installa ' opzione seguita dal nome del pacchetto con dnf da installare, supponiamo di voler installare il pacchetto del server web (httpd)
[[email protected] ~]$ sudo dnf install httpd
Esempio:4) Rimozione di un pacchetto
Per rimuovere un pacchetto, eseguire quanto segue dal terminale,
[[email protected] ~]$ sudo dnf remove httpd or [[email protected] ~]$ sudo dnf erase httpd
L'output del comando precedente sarebbe qualcosa di simile al seguente:
Esempio:5) Aggiorna un pacchetto
Esegui il comando seguente per aggiornare un singolo pacchetto sul sistema,
Sintassi:dnf update {pkg-name}
[[email protected] ~]$ sudo dnf update filezilla
Esempio:6) Verifica l'aggiornamento completo del sistema
Per un controllo dell'aggiornamento a livello di sistema, eseguire il comando seguente,
[[email protected] ~]$ sudo dnf check-update
Esempio:7) Aggiorna tutti i pacchetti di sistema
Per aggiornare tutti i pacchetti di sistema, esegui quanto segue
[[email protected] ~]$ sudo dnf upgrade
Esempio:8) Elenca tutti i pacchetti di gruppo
Usa quanto segue per elencare tutti i pacchetti di gruppo
[[email protected] ~]$ sudo dnf grouplist Last metadata expiration check: 1:40:19 ago on Tue 10 Oct 2017 10:08:39 AM IST. Available Environment Groups: Fedora Custom Operating System Minimal Install Fedora Server Edition Fedora Workstation Fedora Cloud Server KDE Plasma Workspaces Xfce Desktop LXDE Desktop Hawaii Desktop LXQt Desktop Cinnamon Desktop MATE Desktop Sugar Desktop Environment Development and Creative Workstation Web Server Infrastructure Server Basic Desktop Installed Groups: LibreOffice Available Groups: 3D Printing Administration Tools Ansible node Audio Production …………………
Esempio:9) Installazione di pacchetti di gruppo
Pacchetti simili sono raggruppati insieme e possono essere installati da un singolo comando, piuttosto che utilizzare comandi separati. Per installare un gruppo, esegui
[[email protected] ~]$ sudo dnf groupinstall "Development Tools"
Esempio:10) Rimozione di pacchetti di gruppo
Per rimuovere un gruppo completo di pacchetti dal sistema, esegui il seguente comando dnf,
Sintassi: dnf groupremove 'group_name'
[[email protected] ~]$ sudo dnf groupremove "Development Tools"
Possiamo anche usare "groupupdate" anche per aggiornare i pacchetti di gruppo.
Esempio:11) Cerca i pacchetti
Per cercare un pacchetto particolare dai repository, esegui
Sintassi:ricerca dnf {nome_pacchetto}
Supponiamo di voler cercare il pacchetto net-tools
[[email protected] ~]$ sudo dnf search net-tools =========== Name Exactly Matched: net-tools ========= net-tools.x86_64 : Basic networking tools [[email protected] ~]$
Esempio:12) Scarica (non installare) un pacchetto
Ci possono essere alcuni scenari in cui è necessario scaricare i pacchetti ma non si desidera installarli. Usa il comando seguente per scaricare pacchetti come samba
Sintassi : dnf download nome_pacchetto
[[email protected] ~]$ sudo dnf download samba samba-4.6.8-0.fc26.x86_64.rpm 139 kB/s | 636 kB 00:04 [[email protected] ~]$
Esempio:13) Mostra tutti i pacchetti disponibili
Per ottenere l'elenco di tutti i pacchetti disponibili dai repository, apri il terminale ed esegui sotto il comando dnf
[[email protected] ~]$ dnf list available | more
Esempio:14) Mostra solo i pacchetti installati
Ora, se richiediamo solo un elenco di pacchetti installati sul sistema, possiamo ottenerlo eseguendo il seguente comando,
[[email protected] ~]$ dnf list installed
Esempio:15) Mostra tutti i pacchetti installati e disponibili
Per ottenere l'elenco di tutti i pacchetti, ad esempio installati e disponibili, eseguire il comando seguente
[[email protected] ~]$ dnf list
Esempio:16) Abilita repository per l'installazione
Per utilizzare un repository particolare per l'installazione di un pacchetto, esegui
[[email protected] ~]$ sudo dnf install --enablerepo=epel mysql Extra Packages for Enterprise Linux 7 - x86_64 3.9 MB/s | 13 MB 00:03 Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================= Installing: mariadb x86_64 3:10.1.26-2.fc26 updates 6.4 M Installing dependencies: mariadb-common x86_64 3:10.1.26-2.fc26 updates 100 k mariadb-config x86_64 3:10.1.26-2.fc26 updates 33 k mariadb-libs x86_64 3:10.1.26-2.fc26 updates 663 k Transaction Summary ================================================================================= Total download size: 7.2 M Installed size: 44 M Is this ok [y/N]: y
Esempio:17) Verifica quale pacchetto fornisce la funzione richiesta
Se vogliamo sapere quale pacchetto è responsabile dell'ottenimento di una particolare funzionalità, ad esempio dobbiamo conoscere il nome del pacchetto associato a 'crontab' o con qualche altro comando, allora possiamo usare il comando dnf 'fornisce ' opzione nel modo seguente,
[[email protected] ~]$ sudo dnf provides crontab cronie-1.5.1-5.fc26.x86_64 : Cron daemon for executing programs at set times Repo : @System cronie-1.5.1-5.fc26.x86_64 : Cron daemon for executing programs at set times Repo : fedora [[email protected] ~]$
Lo stesso può essere fatto contro un file, possiamo anche usare lo stesso comando con un percorso di file per ottenere il nome del pacchetto a cui è associato il file,
[[email protected]]$ sudo dnf provides /var/www/html
Esempio:18) Visualizza le informazioni sul pacchetto
Per ottenere i dettagli di un pacchetto specifico, esegui
[[email protected] ~]$ dnf info cronie Installed Packages Name : cronie Version : 1.5.1 Release : 5.fc26 Arch : x86_64 Size : 236 k Source : cronie-1.5.1-5.fc26.src.rpm Repo : @System From repo : anaconda Summary : Cron daemon for executing programs at set times URL : https://fedorahosted.org/cronie License : MIT and BSD and ISC and GPLv2+ Description : Cronie contains the standard UNIX daemon crond that runs / specified programs at : scheduled times and related tools. It is a fork of the / original vixie-cron and : has security and configuration enhancements like the / ability to use pam and : SELinux. [[email protected] ~]$
Esempio:19) Creazione di una cache
Sebbene la cache venga creata automaticamente nel tempo, abbiamo anche un'opzione per creare manualmente la cache, in modo che le azioni future siano veloci e completate rapidamente. Per creare una cache manualmente, esegui
[[email protected] ~]$ sudo time dnf makecache Last metadata expiration check: 0:04:41 ago on Thu 12 Oct 2017 09:53:00 AM IST. Metadata cache created. 0.86user 0.12system 0:01.04elapsed 95%CPU (0avgtext+0avgdata 106872maxresident)k 0inputs+1192outputs (0major+39606minor)pagefaults 0swaps [[email protected] ~]$
Esempio:20) Elimina una cache
Per eliminare tutti i dati memorizzati nella cache dnf, eseguire i seguenti comandi
[[email protected] ~]$ sudo dnf clean all 34 files removed [[email protected] ~]$
Esempio:21) Controlla la cronologia delle transazioni
Per controllare tutte le transazioni che sono state eseguite utilizzando il comando DNF, esegui i seguenti comandi
[[email protected] ~]$ sudo dnf history
Verrà prodotto un elenco di tutte le transazioni nell'ordine in cui sono avvenute con un numero corrispondente. Possiamo utilizzare questo numero per ottenere ulteriori dettagli di tale transazione,
[[email protected] ~]$ sudo dnf history info 5
I registri relativi all'installazione, alla rimozione o agli aggiornamenti sono conservati nel file di registro /var/log/dnf.log, utilizzando il comando dnf history possiamo anche eseguire il rollback degli aggiornamenti di sistema.
Esempio:22) Rimozione di pacchetti orfani
I pacchetti orfani sono quei pacchetti che sono stati installati una volta per soddisfare la dipendenza per qualche altro pacchetto ma non sono richiesti ora. Per rimuovere tali pacchetti, esegui
[[email protected] ~]$ sudo dnf autoremove
Esempio:23) Sincronizzare tutti i pacchetti con le ultime versioni stabili
Esegui il comando seguente per sincronizzare tutti i pacchetti con le ultime versioni stabili,
[[email protected] ~]$ sudo dnf distro-sync
Se dobbiamo sincronizzare un solo pacchetto, menziona quel nome_pacchetto alla fine, altrimenti tutti i pacchetti verranno sincronizzati.
Esempio:24) Reinstallare un pacchetto
Per reinstallare un pacchetto, se necessario, esegui il comando seguente,
[[email protected] ~]$ sudo dnf reinstall postfix Dependencies resolved. =========================================================================== Package Arch Version Repository Size =========================================================================== Reinstalling: postfix x86_64 2:3.2.2-1.fc26 fedora 1.4 M Transaction Summary =========================================================================== Total download size: 1.4 M Is this ok [y/N]: y
Esempio:25) Upgrade a una versione particolare
Con DNF, è anche possibile aggiornare il pacchetto rpm a una versione particolare, per ottenere ciò eseguire il comando seguente,
[[email protected] ~]$ sudo dnf upgrade-to httpd-2.4.27-3.fc26
Esempio:26) Ottieni l'elenco di tutti i comandi e le opzioni DNF
Per ottenere un elenco di tutte le opzioni disponibili che possono essere utilizzate con DNF, esegui
[[email protected] ~]$ dnf help
Questo è stato il nostro tutorial completo per il gestore di pacchetti DNF con esempi. Si prega di lasciare qualsiasi domanda o domanda per questo tutorial nei commenti qui sotto.