Comando dnf: cercare, installare e aggiornare pacchetti RPM

dnf permette di cercare, installare, rimuovere e aggiornare pacchetti su distribuzioni della famiglia Fedora e RHEL, comprese Rocky Linux e AlmaLinux. Gestisce le dipendenze usando i repository configurati; prima di applicare un'operazione bisogna leggere il piano proposto e verificare quale versione di DNF è installata.

DNF lavora sopra il sistema RPM, che gestisce archivi e database dei pacchetti. Per le normali installazioni da repository conviene usare DNF, invece di trattare ogni RPM come un file indipendente: le librerie richieste devono essere compatibili fra loro. Anche un RPM locale può essere gestito con DNF, purché provenga da una fonte affidabile e sia adatto alla distribuzione.

Sintassi e differenze fra DNF4 e DNF5

dnf [options] command [packages...]

options, command e packages sono segnaposto. Controlla dnf --version, dnf help e man dnf sul sistema interessato. Il nome dnf non basta a stabilire quali opzioni siano disponibili: la distribuzione può fornire DNF4 o DNF5, con differenze nei sottocomandi, nei plugin e nell'output.

Gli esempi conservano la forma dnf del comando. Nella documentazione DNF5 la verifica degli aggiornamenti è descritta come dnf5 check-upgrade. Se un sottocomando non viene riconosciuto, consulta l'aiuto della versione installata prima di sostituire opzioni a tentativi. In DNF5 le opzioni specifiche di un comando vanno dopo il sottocomando, mentre DNF4 ne accettava normalmente anche altre posizioni.

Le interrogazioni seguenti non installano pacchetti, ma possono consultare la rete e aggiornare i metadati in cache. Per modificare il sistema servono privilegi amministrativi. Prima di un'installazione verifica distribuzione, versione, spazio disponibile, connettività ai repository e backup dei dati importanti.

Esempi: cercare, installare e controllare gli aggiornamenti

Cercare nginx e leggerne le informazioni

dnf search nginx
dnf info nginx

La ricerca aiuta a individuare i nomi pertinenti; info permette di approfondire il pacchetto scelto. Controlla descrizione, versione, architettura e repository. Un risultato contenente nginx non indica necessariamente che sia già installato. Se il pacchetto non viene trovato, verifica i repository previsti per la tua distribuzione, senza aggiungerne uno casuale soltanto per ottenere un risultato.

Installare il pacchetto

sudo dnf install nginx

Prima di confermare, esamina il riepilogo: pacchetti richiesti, dipendenze, eventuali sostituzioni, quantità da scaricare e spazio utilizzato. Se il piano non corrisponde a ciò che intendi fare, rispondi no. Evita -y mentre stai imparando o verificando una nuova procedura: elimina la normale occasione di leggere e rifiutare il piano.

Dopo l'operazione, rileggi il risultato e verifica il pacchetto installato con dnf info --installed nginx, se l'opzione è supportata. L'installazione del pacchetto non dimostra da sola che il servizio sia attivo, configurato correttamente o raggiungibile attraverso il firewall: sono controlli distinti da eseguire secondo la distribuzione.

Verificare la disponibilità di aggiornamenti

dnf check-update

Questo comando cerca aggiornamenti disponibili, senza installarli. Con DNF4 il codice di uscita è 100 quando trova aggiornamenti, 0 quando non ne trova e 1 in caso di errore. DNF5 documenta anch'esso 100 e 0 per check-upgrade. In uno script, leggi echo $? subito dopo il comando: interpretare ogni valore diverso da zero come errore classificherebbe erroneamente il caso 100.

La presenza di un aggiornamento nell'elenco non garantisce che un successivo upgrade possa applicarlo: il risolutore deve ancora rispettare dipendenze e vincoli. Un errore di rete o di repository non equivale a un controllo riuscito senza aggiornamenti.

Distinguere versione installata e pacchetti disponibili

dnf info bash

Ecco alcuni campi che puoi incontrare, non una risposta completa da aspettarti identica su ogni sistema:

Name         : bash
Version      : ...
Architecture : x86_64
Repository   : ...

I puntini sostituiscono valori variabili e x86_64 è solo un'architettura di esempio. Leggi il contesto della voce: info può mostrare pacchetti installati e disponibili. Il repository di un candidato non va confuso con la provenienza registrata di un pacchetto già installato.

Le opzioni --installed e --available aiutano a restringere l'interrogazione, ma non hanno una semantica perfettamente identica in tutte le versioni. In particolare, DNF5 può includere fra i disponibili pacchetti già installati e reinstallabili; non dedurre quindi l'assenza dal sistema dalla sola presenza in quell'elenco. L'output può inoltre cambiare lingua, campi e disposizione: per automatizzare evita di dipendere da una particolare impaginazione pensata per la lettura umana.

Comandi principali

Comando Funzione e limite
search / info Cerca pacchetti o ne mostra i dettagli; controlla lo stato e il repository della voce.
install / remove Installa o rimuove pacchetti: leggi tutte le modifiche proposte alle dipendenze.
check-update / upgrade Verifica gli aggiornamenti oppure li applica; DNF5 documenta la verifica come check-upgrade.
repolist In DNF4 elenca per impostazione predefinita i repository abilitati.
history Consulta le transazioni registrate; in DNF5 usa un sottocomando come history list.

Per DNF5 verifica anche la sintassi di dnf5 repo list. Un elenco di repository conferma la configurazione visualizzata, non dimostra che ogni server sia raggiungibile o che ogni pacchetto sia compatibile. Non mescolare pacchetti destinati a versioni diverse della distribuzione per risolvere un singolo errore.

Aggiornamenti, rimozioni e possibilità di recupero

sudo dnf upgrade modifica i pacchetti installati. Prevedi una finestra di manutenzione per sistemi importanti: l'aggiornamento di librerie o programmi può richiedere il riavvio dei processi che li usano, mentre un nuovo kernel va avviato per essere utilizzato. Non presumere che la sola fine della transazione abbia già aggiornato ogni processo in esecuzione.

--allowerasing consente al risolutore di rimuovere pacchetti installati per risolvere conflitti: non aggiungerlo automaticamente a un comando che fallisce. Anche una rimozione ordinaria può coinvolgere altre dipendenze. Prima di confermare confronta il piano con i servizi e i programmi di cui hai bisogno.

La cronologia aiuta a ricostruire cosa è cambiato. DNF5 distingue history list, history info e operazioni che modificano il sistema, come undo e rollback. Queste ultime non sono interrogazioni e non sostituiscono un backup: ripristinare versioni di pacchetti non ricrea necessariamente dati applicativi o configurazioni precedenti, e le versioni richieste potrebbero non essere più disponibili.

In caso di errore conserva i messaggi completi e controlla repository, spazio, firme e dipendenze indicate. Non disabilitare la verifica delle firme per superare un errore e non cancellare i file di blocco mentre un altro gestore lavora. Se il piano cambia rispetto a quello atteso, interrompi e risolvi prima la causa.

Domande frequenti

Per installare conviene usare dnf o rpm?

Per la gestione ordinaria da repository è preferibile DNF, che tiene conto delle dipendenze. RPM serve a trattare direttamente archivi e database dei pacchetti; l'installazione diretta non offre la stessa gestione dei repository.

Il codice 100 di check-update indica che il controllo è fallito?

Con DNF4 indica che sono disponibili aggiornamenti; DNF5 usa lo stesso valore per check-upgrade. Distinguilo dagli errori effettivi e verifica il significato dei codici nella documentazione della tua versione.

Documentazione ufficiale

La documentazione dei comandi DNF4 descrive check-update e i comandi tradizionali. Consulta inoltre le differenze fra DNF4 e DNF5 e le pagine DNF5 su check-upgrade, info, install e history, insieme all'aiuto fornito dalla distribuzione.