DNF su Rocky Linux: pacchetti, repository e aggiornamenti
DNF (Dandified YUM) gestisce ricerca, installazione, aggiornamento, rimozione e cronologia dei pacchetti su Rocky Linux. Prima di confermare una transazione, controllate pacchetti coinvolti, dipendenze e repository: un comando rivolto a un solo pacchetto può modificare anche altri componenti.
Verificare versione e sintassi di DNF
Una transazione è l'insieme di operazioni sui pacchetti che DNF propone e applica insieme. La sintassi generale è dnf [opzioni] comando [destinazione]. Controllate prima la versione e l'aiuto installati:
dnf --version
dnf --help
Gli esempi seguono l'interfaccia DNF 4 descritta nel riferimento ufficiale. Se il sistema usa un'altra implementazione, confrontate le opzioni con il suo --help invece di presumere che siano identiche. Le interrogazioni si possono normalmente eseguire come utente ordinario; le transazioni che modificano i pacchetti di sistema richiedono privilegi amministrativi, qui indicati con sudo.
Servono repository configurati e raggiungibili, spazio libero e accesso ai pacchetti richiesti. Anche un'interrogazione può scaricare metadati e aggiornare la cache: non equivale a lavorare senza rete. Scegliete gli esempi pertinenti, senza eseguire tutte le installazioni, reinstallazioni e rimozioni come un'unica procedura.
Cercare pacchetti e leggerne le informazioni
Cercare nel nome e nel riepilogo
dnf search nginx
dnf info nginx
In DNF 4 search cerca per impostazione predefinita nei nomi e nei riepiloghi dei pacchetti. Per includere descrizioni estese e URL potete usare dnf search --all nginx; con più parole, --all cambia anche la combinazione dei termini da “tutti” ad “almeno uno”.
info mostra dati come versione, architettura, repository e descrizione. Controllate se il risultato riguarda una versione installata o disponibile e quale sorgente la fornisce. Un nome trovato non garantisce che quella versione sia installabile nella configurazione corrente.
Trovare il pacchetto che fornisce un file
dnf provides '*/semanage'
dnf provides /usr/bin/rsync
Il primo comando cerca il fornitore di un percorso che termina con semanage; il secondo usa un percorso preciso. Le virgolette impediscono alla shell di espandere */semanage prima che lo riceva DNF. Se non compaiono risultati, controllate percorso, repository abilitati, filtri e metadati, senza dedurre subito che il programma non esista.
Installare e reinstallare pacchetti
Per installare nginx oppure, se è già presente e serve ripristinarne i file, tentare una reinstallazione:
sudo dnf install nginx
sudo dnf reinstall nginx
install risolve le dipendenze necessarie. Prima di confermare leggete nomi, versioni, architetture, repository, pacchetti aggiunti o rimossi e spazio richiesto. Se il piano non corrisponde all'obiettivo rispondete di no e correggete la causa. Evitate la conferma automatica -y durante questa verifica.
reinstall richiede che il pacchetto sia installato e che lo stesso RPM sia ancora disponibile da una sorgente utilizzabile. Non è un ripristino universale delle impostazioni: la gestione dei file di configurazione dipende dalle regole del pacchetto RPM e possono esistere file .rpmnew o .rpmsave. Conservate prima le configurazioni importanti.
Dopo il completamento rileggete dnf info nginx o dnf list --installed nginx e controllate il risultato della transazione. L'installazione del pacchetto non prova che il servizio sia già configurato, attivo o accessibile ai client.
Per un RPM locale, sostituite il nome fittizio con il file reale della versione e architettura adatte alla vostra distribuzione:
sudo dnf install ./example-package.rpm
DNF può cercare le dipendenze nei repository abilitati; non può risolvere una dipendenza che nessuna sorgente utilizzabile offre. Verificate provenienza e firma dell'RPM: il controllo dei pacchetti locali dipende anche da localpkg_gpgcheck e dalla policy RPM. Non presumete che installare un file tramite DNF ne certifichi automaticamente l'affidabilità.
Controllare e applicare gli aggiornamenti
Leggere gli aggiornamenti disponibili
dnf check-update
dnf updateinfo list
check-update elenca gli aggiornamenti trovati. Il codice di uscita è 100 se ce ne sono, 0 se non ce ne sono e un valore di errore quando la verifica non riesce. In uno script distinguete questi casi: usare soltanto dnf check-update && ... non esegue il ramo successivo quando il risultato è 100.
updateinfo list mostra gli avvisi di aggiornamento forniti dai metadati dei repository, non soltanto quelli di sicurezza. Un elenco vuoto non dimostra da solo che non esistano correzioni necessarie: controllate quali repository e quali metadati sono stati consultati.
Aggiornare tutto il sistema o un pacchetto
La prima riga richiede un aggiornamento generale; la seconda limita i pacchetti richiesti a openssl, con le eventuali modifiche necessarie alle dipendenze. Scegliete l'operazione desiderata:
sudo dnf upgrade
sudo dnf upgrade openssl
La transazione effettiva dipende da versioni disponibili, filtri e risoluzione delle dipendenze: un pacchetto elencato da check-update non è garantito che venga aggiornato dal successivo upgrade. Per esaminare il piano senza confermarlo potete aggiungere --assumeno, per esempio sudo dnf upgrade --assumeno.
Prima di aggiornare un server preparate backup verificati, finestra di manutenzione e recupero. Kernel, librerie e servizi possono richiedere riavvio del sistema o dei processi per usare il nuovo codice. Al termine controllate la cronologia, le versioni installate e le funzioni applicative; un aggiornamento riuscito del pacchetto non sostituisce la prova del servizio.
Rimuovere pacchetti e valutare le dipendenze inutilizzate
sudo dnf remove nginx
sudo dnf autoremove --assumeno
remove nginx può rimuovere anche pacchetti che dipendono da nginx. Inoltre, se clean_requirements_on_remove è attivo, può eliminare dipendenze installate automaticamente che non servono più. Leggete l'intero elenco dei pacchetti proposti, non soltanto il nome indicato nel comando.
La seconda riga è una valutazione separata: autoremove --assumeno presenta i candidati e risponde di no alla conferma, senza applicare la rimozione dei pacchetti. Può comunque consultare la cache o i repository. Controllate il motivo di installazione dei candidati: un componente usato da script locali potrebbe essere necessario anche se DNF non rileva una dipendenza da un altro pacchetto.
Se una rimozione è già stata applicata, reinstallare i pacchetti può richiedere versioni non più disponibili e non recupera i dati eliminati dal servizio o dai suoi script. Conservate backup e configurazioni prima dell'intervento.
Consultare elenchi e repository
Distinguere installato, disponibile e aggiornabile
dnf list --installed
dnf list --available
dnf list --upgrades
--installed riguarda i pacchetti presenti; --available quelli disponibili secondo i repository e i filtri correnti; --upgrades mostra candidati più recenti per i pacchetti installati. Per limitare il risultato aggiungete un nome, come dnf list --installed nginx.
La visualizzazione può risentire di architettura, esclusioni, metadati e, nelle versioni che li usano, filtri modulari. Per un approfondimento sull'inventario e sui file dei pacchetti consultate la guida ai pacchetti installati con DNF e RPM su Rocky Linux.
Verificare gli identificatori dei repository
dnf repolist
dnf repolist --all
dnf repository-packages appstream list --available
repolist mostra normalmente i repository abilitati; --all include quelli disabilitati. Nell'ultima riga appstream è un ID di esempio: usate quello realmente presente nell'elenco. Il comando elenca i pacchetti disponibili associati a quel repository, non scarica tutto il suo contenuto per installarlo.
Prima di usare una sorgente aggiuntiva verificate chi la gestisce, chiave di firma, distribuzioni supportate e possibilità che sostituisca pacchetti delle sorgenti abituali. I file di configurazione sono normalmente in /etc/yum.repos.d/*.repo, con opzioni generali in /etc/dnf/dnf.conf.
Questi esempi cambiano la selezione dei repository per una sola esecuzione; non modificano in modo permanente i file .repo:
sudo dnf --disablerepo='example-repo' upgrade
sudo dnf --enablerepo='example-repo' install package-name
Sostituite example-repo e package-name con valori reali. --enablerepo aggiunge quel repository a quelli già abilitati, non lo rende l'unica sorgente; le dipendenze possono provenire dalle altre sorgenti attive. Analogamente, --disablerepo non annulla pacchetti già installati da quel repository. Prima di confermare confrontate il piano completo.
Leggere la cronologia e valutare un annullamento
dnf history
dnf history info transaction_ID
sudo dnf history undo transaction_ID
Leggete prima dnf history, scegliete una transazione e sostituite entrambe le occorrenze di transaction_ID con il suo numero reale. history info ne mostra le operazioni; l'ultima riga è una modifica da valutare separatamente, non un seguito obbligatorio alla consultazione.
history undo tenta le operazioni inverse di quella specifica transazione; non riporta automaticamente tutto il sistema a un istante precedente. Può fallire se vecchi RPM non sono più disponibili o se lo stato attuale delle dipendenze impedisce l'annullamento. Esaminate la proposta prima di confermare, eventualmente con sudo dnf history undo --assumeno transaction_ID dopo aver sostituito l'ID.
La cronologia non è un backup di database, impostazioni o dati applicativi. Per un recupero operativo affidatevi al piano verificato per quella macchina; non considerate il downgrade dei pacchetti fondamentali un sostituto del ripristino del sistema.
Gestire cache e metadati
I metadati descrivono pacchetti, versioni e dipendenze offerti dai repository. La cache conserva queste informazioni e, quando presenti, gli RPM scaricati:
| Comando | Uso |
|---|---|
dnf makecache |
Prepara o aggiorna i metadati dei repository abilitati, evitando download non necessari quando la cache è ancora valida. |
dnf clean metadata |
Elimina i metadati memorizzati; le operazioni successive che li richiedono dovranno recuperarli di nuovo. |
dnf clean packages |
Elimina gli RPM nella cache, senza disinstallare i pacchetti dal sistema. |
dnf clean all |
Esegue la pulizia complessiva della cache DNF, inclusi metadati e pacchetti scaricati. |
Utente ordinario e root possono usare cache differenti: operate con l'identità appropriata alla cache da preparare o pulire. Questi comandi non annullano transazioni. Evitate clean all come risposta automatica a qualunque errore: può obbligare a nuovi download senza correggere la causa.
Controllate prima rete, risoluzione dei nomi, orologio del sistema, URL dei repository e messaggio di firma. Non disabilitate la verifica delle firme per nascondere un errore di chiave o provenienza. La documentazione della configurazione DNF distingue cache, repository e verifica dei pacchetti.
Riepilogo dei comandi più usati
In questa tabella termine, nome-pacchetto e nomefile sono segnaposto da sostituire:
| Obiettivo | Comando |
|---|---|
| Cercare | dnf search termine |
| Leggere le informazioni | dnf info nome-pacchetto |
| Installare | sudo dnf install nome-pacchetto |
| Aggiornare il sistema | sudo dnf upgrade |
| Rimuovere | sudo dnf remove nome-pacchetto |
| Trovare chi fornisce un file | dnf provides '*/nomefile' |
| Consultare la cronologia | dnf history |
| Elencare i repository | dnf repolist --all |
Applicare le modifiche con un piano di recupero
- Esaminate il piano di installazione, aggiornamento o rimozione prima della conferma; valutate anche dipendenze e sostituzioni.
- Per i server importanti conservate dati e configurazioni e provate il ripristino prima della manutenzione.
- Verificate origine dei repository e chiavi di firma, mantenendo attive soltanto le sorgenti necessarie.
- Su più server usate sorgenti coerenti, snapshot disponibili o procedure di distribuzione verificate, senza presumere che eseguire lo stesso comando in giorni diversi produca lo stesso risultato.
Riferimenti per le opzioni di DNF
Il riferimento ufficiale dei comandi DNF descrive opzioni e stati di uscita; la guida Rocky Linux al gestore DNF presenta le operazioni di gestione dei pacchetti. Confrontate queste indicazioni con versione, repository e configurazione della macchina interessata.




