Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra le attività comuni di gestione dei pacchetti in Azure Linux, tra cui:
- Posizione in cui risiede la configurazione del repository.
- Come i comandi precedenti del gestore di pacchetti corrispondono a DNF5.
- Come DNF memorizza nella cache i metadati e risolve i pacchetti.
- Modalità di gestione dei kernel e di altri pacchetti di sola installazione.
- Come abilitare gli aggiornamenti automatici.
- I comandi DNF più comunemente usati.
Annotazioni
Azure Linux 4.0 è ora disponibile in preview ed è strettamente limitato a scopi di valutazione e test. Non è adatto per l'uso in produzione.
Configurazione del repository
DNF5 legge le definizioni dei repository da /etc/yum.repos.d/. Il nome della directory viene mantenuto da YUM per la compatibilità; DNF5 legge da questa directory.
Ogni .repo file in tale directory è un file di configurazione di testo normale che indica a DNF dove trovare i pacchetti, se verificarli con GpG e se il repository è abilitato per impostazione predefinita. Il file di configurazione DNF principale è /etc/dnf/dnf.conf, che controlla il comportamento globale, ad esempio le impostazioni della cache, il limite di sola installazione e la configurazione del proxy.
Collegamenti simbolici di compatibilità per i comandi legacy
Azure Linux fornisce collegamenti simbolici di compatibilità in modo che i comandi legacy (yum, dnf (DNF4), microdnf e tdnf) rimandino tutti a DNF5:
lrwxrwxrwx. 1 root root 4 yum -> dnf5
lrwxrwxrwx. 1 root root 4 microdnf -> dnf5
-rwxr-xr-x. 1 root root 1614408 dnf5
lrwxrwxrwx. 1 root root 4 dnf -> dnf5
lrwxrwxrwx. 1 root root 4 tdnf -> dnf5
I sottocomandi comuni funzionano tutti tramite i collegamenti simbolici. I casi limite che dipendevano dagli elementi interni di DNF4 o da comportamenti specifici di microdnf potrebbero non funzionare. Per informazioni dettagliate sulle modifiche, vedere le risorse seguenti:
- Modifiche tra DNF e DNF5
- Migrazione a DNF5
- Modifiche apportate all'interfaccia della riga di comando DNF rispetto a YUM
Come DNF5 risolve i pacchetti
Quando si esegue un comando DNF, DNF5 esegue i passaggi seguenti per determinare quali pacchetti installare, aggiornare o rimuovere:
- Carica ogni
.repofile in/etc/yum.repos.d/e seleziona i repository contrassegnati come abilitati. - Aggiorna i metadati del repository, memorizzandolo nella cache in locale in
/var/cache/libdnf5. I metadati memorizzati nella cache includono l'elenco di pacchetti, le informazioni sulla versione e sulle dipendenze, i checksum e le firme. - Risolve l'installazione, la rimozione o l'aggiornamento richiesti nei repository abilitati, seleziona le versioni dei pacchetti e verifica l'integrità e le firme prima di applicare la transazione.
I repository disabilitati vengono ignorati a meno che non vengano abilitati in modo esplicito con --enablerepo=<repo-id> per un singolo comando.
La /var/cache/libdnf5 cache esiste, pertanto DNF non deve scaricare nuovamente i metadati in ogni chiamata. Eseguire dnf clean all per svuotarlo (vedere Comandi DNF usati di frequente).
Pacchetti di sola installazione e più versioni installate
Alcuni pacchetti, in particolare il kernel, vengono installati side-by-side anziché aggiornati sul posto. DNF5 controlla questa impostazione tramite due impostazioni in /etc/dnf/dnf.conf:
-
installonlypkgs: elenco dei nomi dei pacchetti che non vengono mai aggiornati direttamente. I pacchetti kernel rappresentano il punto di accesso predefinito. -
installonly_limit: numero massimo di versioni di un pacchetto di sola installazione che possono coesistere nel sistema. Il valore predefinito è3.
Quando viene installata una nuova versione e viene superato il limite, DNF rimuove automaticamente la versione meno recente.
Per il kernel, si ottiene quanto segue:
- Fallback: se l'avvio di un nuovo kernel non riesce, GRUB può comunque avviare un kernel precedente e funzionante.
- Convalida: è possibile installare e testare un nuovo kernel senza rimuovere quello in esecuzione.
- Coesistenza varianti: è possibile installare compilazioni del kernel diverse (ad esempio, con set di funzionalità diversi) contemporaneamente.
Ogni versione del kernel è un RPM separato, quindi DNF tiene traccia e li rimuove come qualsiasi altro pacchetto.
Aggiornamenti automatici con dnf-automatic
dnf-automatic è un servizio che verifica periodicamente la disponibilità di aggiornamenti dei pacchetti, li scarica e, facoltativamente, li applica. È guidato da un timer di sistema anziché da un daemon di lunga durata.
Installazione di dnf-automatic
Eseguire l'installazione dnf-automatic usando il comando seguente:
sudo dnf install -y dnf-automatic
Abilitare il dnf-automatic timer
Abilitare il dnf-automatic timer immediatamente e tra i riavvii usando il comando seguente:
sudo systemctl enable --now dnf-automatic.timer
-
enableconfigura il timer per avviarsi all'avvio del sistema. -
--nowavvia il timer nella sessione corrente.
Controllare lo stato del dnf-automatic timer
Verificare che il timer sia attivo e vedere quando è stato eseguito per l'ultima volta usando il comando seguente:
systemctl status dnf-automatic.timer
L'output tipico è simile all'esempio seguente:
● dnf5-automatic.timer - dnf-automatic timer
Loaded: loaded (/usr/lib/systemd/system/dnf5-automatic.timer; enabled; preset: disabled)
Active: active (waiting) since Thu 2026-03-26 14:36:54 UTC; 13min ago
Invocation: f6984eeceb7c40df99bca243f3da728c
Trigger: Fri 2026-03-27 06:34:18 UTC; 15h left
Triggers: ● dnf5-automatic.service
Active: active (waiting) è previsto: il servizio sottostante è un servizio singolo eseguito solo quando il timer scatta, quindi termina. La riga Trigger: mostra la prossima esecuzione pianificata.
Elenca la prossima esecuzione pianificata del timer dnf-automatic
Elencare l'esecuzione successiva insieme a qualsiasi altro timer usando il comando seguente:
systemctl list-timers dnf-automatic.timer
Output di esempio:
NEXT LEFT LAST PASSED UNIT ACTIVATES
Fri 2026-03-27 06:34:18 UTC 15h - - dnf5-automatic.timer dnf5-automatic.service
1 timers listed.
Pass --all to see loaded but inactive timers, too.
Configurazione facoltativa di dnf-automatic
È possibile configurare il comportamento di aggiornamento automatico aggiungendo il /etc/dnf/automatic.conf file. Questo file controlla se gli aggiornamenti vengono scaricati, applicati automaticamente o limitati solo agli aggiornamenti di sola sicurezza. Per informazioni dettagliate sulla configurazione, vedere la documentazione dnf5-automatic
Annotazioni
Gli aggiornamenti automatici vengono installati tramite dnf-automatic, ma il sistema non viene riavviato automaticamente. Se viene aggiornato un kernel (o un altro pacchetto necessario per il riavvio), la nuova versione non avrà effetto fino al successivo riavvio. Dopo gli aggiornamenti, verificare se è necessario un riavvio e pianificare uno in base alle esigenze.
Comandi DNF usati di frequente
I comandi seguenti illustrano la gestione quotidiana dei pacchetti in Azure Linux.
dnf clean all
dnf clean all rimuove tutti gli elementi memorizzati nella cache DNF in /var/cache/libdnf5. Usarlo per:
- Eseguire il ripristino da metadati danneggiati o non aggiornati che causano errori di transazione.
- Ridurre le immagini del container rimuovendo la cache dei pacchetti dopo le installazioni nello stesso layer
RUN. - Recuperare spazio su disco.
Esempio di contenitore:
RUN dnf install -y package1 package2 \
&& dnf clean all
dnf search
dnf search corrisponde alle parole chiave rispetto ai nomi dei pacchetti e ai riepiloghi. Per esempio:
dnf search lsof
Output di esempio:
Updating and loading repositories:
Azure Linux 4.0 - x86_64 - Microsoft 100% | 7.6 KiB/s | 4.8 KiB | 00m01s
Repositories loaded.
Matched fields: name (exact)
lsof.x86_64 A utility which lists open files on a Linux/UNIX system
dnf provides
dnf provides trova il pacchetto proprietario di un determinato file, comando o funzionalità. Per esempio:
dnf provides lsof
Output di esempio:
Updating and loading repositories:
Repositories loaded.
lsof-4.98.0-8.azl4.20260303.x86_64 : A utility which lists open files on a Linux/UNIX system
Repo : @System
Matched From :
Provide : lsof = 4.98.0-8.azl4.20260303
dnf install
dnf install installa uno o più pacchetti insieme alle relative dipendenze di runtime:
sudo dnf install lsof
Output di esempio:
Updating and loading repositories:
Repositories loaded.
Package Arch Version Repository Size
Installing:
lsof x86_64 4.98.0-8.azl4.20260303 azurelinux 578.5 KiB
Transaction Summary:
Installing: 1 package
Total size of inbound packages is 226 KiB. Need to download 226 KiB.
After this operation, 579 KiB extra will be used (install 579 KiB, remove 0 B).
Is this ok [y/N]: y
[1/1] lsof-0:4.98.0-8.azl4.20260303.x86_64 100% | 641.9 KiB/s | 226.0 KiB | 00m00s
[1/1] Total 100% | 640.1 KiB/s | 226.0 KiB | 00m00s
Running transaction
[1/3] Verify package files 100% | 500.0 B/s | 1.0 B | 00m00s
[2/3] Prepare transaction 100% | 23.0 B/s | 1.0 B | 00m00s
[3/3] Installing lsof-0:4.98.0-8.azl4.20260303.x86_64 100% | 3.0 MiB/s | 580.2 KiB | 00m00s
Complete!
dnf remove
dnf remove disinstalla un pacchetto insieme a tutte le dipendenze installate unicamente per quel pacchetto:
sudo dnf remove -y lsof
Output di esempio:
Package Arch Version Repository Size
Removing:
lsof x86_64 4.98.0-8.azl4.20260303 azurelinux 578.5 KiB
Transaction Summary:
Removing: 1 package
After this operation, 579 KiB will be freed (install 0 B, remove 579 KiB).
Is this ok [y/N]: y
Running transaction
[1/2] Prepare transaction 100% | 27.0 B/s | 1.0 B | 00m00s
[2/2] Removing lsof-0:4.98.0-8.azl4.20260303.x86_64 100% | 72.0 B/s | 11.0 B | 00m00s
Complete!
dnf upgrade
dnf upgrade aggiorna i pacchetti installati alle versioni più recenti disponibili.
sudo dnf upgrade
Quando tutto è aggiornato, l'output è breve. Per esempio:
Updating and loading repositories:
Repositories loaded.
Nothing to do.
Tip
Passa -y a install, remove o upgrade in contesti non interattivi, come negli script, nelle pipeline CI e nelle build di container. Qualsiasi operazione DNF che modifica il sistema richiede i privilegi di root, quindi eseguila con sudo o come root.
Contenuti correlati
-
Utilità di gestione pacchetti DNF5: informazioni di riferimento complete sulla riga di comando per
dnf5. - Modifiche tra DNF e DNF5: cosa è cambiato da DNF4, inclusi i comandi rimossi e le differenze di comportamento.
- Migrazione a DNF5: linee guida per lo spostamento di script e automazione da DNF4 a DNF5.