Comando yum: uso e opzioni, yum-utils e verifica dei repository

Ambiente di testFamiglia RHELAlmaLinux 9.8account root
Comandi dei pacchettiyumyum-utilsrpmPosizione/usr/bin/yum

Il comando yum è il comando di gestione dei pacchetti che installa, aggiorna e rimuove i pacchetti su Linux della famiglia RHEL. Eseguendo i comandi di consultazione e di controllo degli aggiornamenti e gli strumenti di yum-utils su un server AlmaLinux 9, yum è stato eseguito come lo stesso programma di dnf e anche l'output era uguale a quello di dnf.

L'elenco dei repository, i numeri di release dei pacchetti e gli orari di installazione nell'output qui sotto sono valori di esempio.

1️⃣ Uso di base del comando yum: yum e dnf

Su AlmaLinux 9, digitando yum viene eseguito dnf. Questo perché /usr/bin/yum è un link che punta a dnf-3.

ls -l /usr/bin/yum /usr/bin/dnf
lrwxrwxrwx 1 root root 5 Oct  5 10:12 /usr/bin/dnf -> dnf-3
lrwxrwxrwx 1 root root 5 Oct  5 10:12 /usr/bin/yum -> dnf-3

Entrambi i file erano link che puntano a dnf-3. Per questo anche yum --version mostra la versione di dnf.

yum --version
4.14.0
  Installed: dnf-0:4.14.0-21.el9_8.alma.1.noarch at Mon Oct  5 10:12:30 2026
  Built    : AlmaLinux Packaging Team <packager@almalinux.org> at Fri May  1 09:30:00 2026

  Installed: rpm-0:4.16.1.3-23.el9.x86_64 at Mon Oct  5 10:12:08 2026
  Built    : AlmaLinux Packaging Team <packager@almalinux.org> at Thu Mar 12 08:15:20 2026

La prima riga, 4.14.0, è la versione di dnf; sotto seguono gli orari in cui sono stati installati i pacchetti dnf e rpm. Compare anche la versione di rpm perché alla fine yum installa i pacchetti ricevuti dal repository con rpm.

La forma di base del comando è yum, opzioni, comando e nome del pacchetto, in quest'ordine. La prima riga di --help mostra questa forma, e sotto segue l'elenco dei comandi.

yum --help | head -n 12
usage: yum [options] COMMAND

List of Main Commands:

alias                     List or create command aliases
autoremove                remove all unneeded packages that were originally installed as dependencies
check                     check for problems in the packagedb
check-update              check for available package upgrades
clean                     remove cached data
deplist                   [deprecated, use repoquery --deplist] List package's dependencies and what packages provide them
distro-sync               synchronize installed packages to the latest available versions
downgrade                 Downgrade a package

I comandi più usati sono raccolti nella tabella.

ComandoCompito
list installedElenco dei pacchetti installati (con un nome di pacchetto, solo quel pacchetto)
list updatesElenco dei pacchetti con una versione più recente nel repository
check-updateControllare se ci sono aggiornamenti (codice di uscita 100 se ci sono)
infoVersione, dimensione, repository e descrizione di un pacchetto
searchCercare pacchetti per nome e riepilogo
installInstallare un pacchetto (dipendenze comprese)
removeRimuovere un pacchetto (come erase)
updatePortare i pacchetti installati a una nuova versione (come upgrade)
autoremoveRimuovere i pacchetti installati come dipendenze e non più necessari
makecacheScaricare in anticipo i metadati del repository e creare la cache
clean allCancellare tutta la cache scaricata
repolistElenco dei repository abilitati
deplistDipendenze e pacchetti che le forniscono (si consiglia repoquery --deplist)
historyCronologia delle transazioni di installazione e rimozione

2️⃣ Opzioni del comando yum: -y, -C, exclude, enablerepo

Le opzioni vanno tra yum e il comando. -y risponde sì alle domande, quindi si usa negli script; quando esegui update a mano su un server di produzione, è meglio non usare -y, leggere la tabella della transazione e rispondere tu.

OpzioneCopiaDescrizione
-C, --cacheonlyUsa solo la cache scaricata senza collegarsi ai repository.
-q, --quietNasconde avvisi come la riga dei metadati e mostra solo il risultato.
--showduplicatesMostra sia la versione installata sia le versioni del repository dello stesso pacchetto.
--exclude=PKG, -x PKGEsclude quel pacchetto da questo comando (sono ammessi pattern come kernel*).
--enablerepo=REPOAbilita un repository disabilitato solo per questo comando.
--versionMostra le versioni di yum (dnf) e rpm.
-h, --helpMostra la guida.
OpzioneCopiaDescrizione
-y, --assumeyesRisponde sì a tutte le domande.
-v, --verboseMostra nel dettaglio le operazioni.
--disablerepo=REPODisabilita un repository abilitato solo per questo comando.
--skip-brokenSalta i pacchetti con dipendenze rotte e prosegue con il resto.

-C mostra il risultato solo con la cache scaricata, senza collegarsi ai repository. La prima riga indica quando la cache è stata aggiornata l'ultima volta, e il risultato inizia dalla seconda riga.

yum -C list tree
Last metadata expiration check: 0:35:03 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

Con -q la prima riga sparisce e compare solo il risultato.

yum -C -q list installed tree
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

--showduplicates mostra affiancate la versione installata e le versioni presenti nel repository.

yum -C --showduplicates list libavif
Last metadata expiration check: 0:38:15 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
libavif.x86_64                      0.11.1-7.el9                       @epel
Available Packages
libavif.x86_64                      1.1.1-2.el9                        epel

0.11.1 sotto Installed Packages e 1.1.1 sotto Available Packages sono due versioni dello stesso pacchetto. La versione del repository è più alta, quindi libavif va aggiornato.

--exclude toglie quel pacchetto da questo comando.

yum -C --exclude=libavif check-update libavif libdav1d
Last metadata expiration check: 0:35:10 ago on Thu Oct 29 05:32:35 2026.

libdav1d.x86_64                         1.5.4-2.el9                         epel

Sono stati indicati due pacchetti, ma libavif è stato escluso ed è rimasto solo libdav1d. Aggiunto a update, aggiorna tutto tranne quel pacchetto.

3️⃣ Gestione dei pacchetti con yum e ordine degli aggiornamenti

Anche conoscendo le opzioni, bisogna prima vedere cosa è installato e cosa è uscito di nuovo per decidere quali pacchetti aggiornare. Per questo partiamo dai comandi che controllano i pacchetti installati.

yum -C list installed tree
Installed Packages
tree.x86_64                         1.8.0-12.el9                         @baseos

@baseos nell'ultima colonna è il repository da cui il pacchetto è stato installato. Interrogando con rpm -q, anche la versione compare su una sola riga.

rpm -q tree htop libavif
tree-1.8.0-12.el9.x86_64
package htop is not installed
libavif-0.11.1-7.el9.x86_64

Per un pacchetto non installato, l'output termina con una sola riga not installed, e il codice di uscita è 1.

I pacchetti con una nuova versione nel repository si controllano con list updates.

yum -C list updates libavif libdav1d
Last metadata expiration check: 0:35:07 ago on Thu Oct 29 05:32:35 2026.
Available Upgrades
libavif.x86_64                          1.1.1-2.el9                         epel
libdav1d.x86_64                         1.5.4-2.el9                         epel

Sotto Available Upgrades ci sono i pacchetti con una nuova versione. Senza nome di pacchetto, controlla tutto ciò che è installato.

check-update segnala la stessa lista anche con il codice di uscita.

yum -C check-update libavif libdav1d; echo $?
Last metadata expiration check: 0:35:08 ago on Thu Oct 29 05:32:35 2026.

libavif.x86_64                          1.1.1-2.el9                         epel
libdav1d.x86_64                         1.5.4-2.el9                         epel
100

Il 100 nell'ultima riga è il codice di uscita. Vale 100 se ci sono aggiornamenti e 0 se non ce ne sono, quindi gli script decidono in base a questo valore.

L'aggiornamento segue l'ordine makecache, update, autoremove.

yum makecache

makecache scarica in anticipo i metadati del repository. update li scarica da solo, quindi puoi saltare questo passaggio.

yum update

update porta tutti i pacchetti installati alla nuova versione e gestisce anche le dipendenze.

yum update libavif

Con un nome di pacchetto, aggiorna solo quel pacchetto.

yum autoremove

autoremove rimuove i pacchetti installati insieme come dipendenze e non più necessari. Si esegue dopo update.

yum update --exclude='kernel*'

Per aggiornare senza il kernel, aggiungi a --exclude un pattern kernel. Dopo un aggiornamento del kernel bisogna riavviare per usare il nuovo kernel; se serve un riavvio lo si controlla con needs-restarting di yum-utils.

4️⃣ Strumenti di yum-utils: yumdownloader, repoquery, needs-restarting

Su AlmaLinux 9, yum-utils è uno strato di compatibilità fornito da dnf-plugins-core. I nomi dei comandi sono quelli dell'epoca del vecchio YUM, ma ciò che viene eseguito sono plugin di dnf.

yum -C info yum-utils
Last metadata expiration check: 0:38:12 ago on Thu Oct 29 05:32:35 2026.
Installed Packages
Name         : yum-utils
Version      : 4.3.0
Release      : 14.el9
Architecture : noarch
Size         : 23 k
Source       : dnf-plugins-core-4.3.0-14.el9.src.rpm
Repository   : @System
From repo    : baseos
Summary      : Yum-utils CLI compatibility layer
URL          : https://github.com/rpm-software-management/dnf-plugins-core
License      : GPLv2+
Description  : As a Yum-utils CLI compatibility layer, supplies in CLI shims for
             : debuginfo-install, repograph, package-cleanup, repoclosure, repomanage,
             : repoquery, reposync, repotrack, repodiff, builddep, config-manager, debug,
             : download and yum-groups-manager that use new implementations using DNF.

Source è dnf-plugins-core e Summary è Yum-utils CLI compatibility layer. Se non è installato, si installa con [yum install yum-utils].

I 17 comandi installati da questo pacchetto compaiono con rpm -ql.

rpm -ql yum-utils | grep bin/
/usr/bin/debuginfo-install
/usr/bin/find-repos-of-install
/usr/bin/needs-restarting
/usr/bin/package-cleanup
/usr/bin/repo-graph
/usr/bin/repoclosure
/usr/bin/repodiff
/usr/bin/repomanage
/usr/bin/repoquery
/usr/bin/reposync
/usr/bin/repotrack
/usr/bin/yum-builddep
/usr/bin/yum-config-manager
/usr/bin/yum-debug-dump
/usr/bin/yum-debug-restore
/usr/bin/yum-groups-manager
/usr/bin/yumdownloader
ls -l /usr/bin/yumdownloader /usr/bin/repoquery /usr/bin/needs-restarting /usr/bin/yum-config-manager
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/needs-restarting -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/repoquery -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/yum-config-manager -> /usr/libexec/dnf-utils
lrwxrwxrwx 1 root root 22 Mar  3  2026 /usr/bin/yumdownloader -> /usr/libexec/dnf-utils

Erano tutti link che puntano a un unico file, /usr/libexec/dnf-utils. Gli strumenti più usati e cosa fanno sono raggruppati in un albero.

yum-utilsUn pacchetto — tutti i 17 comandi sono link a /usr/libexec/dnf-utils
yumdownloaderDownload dei file di pacchetto (.rpm) · --urls mostra solo gli indirizzi
repoqueryConsultare l'elenco dei file, le dipendenze e le dipendenze inverse di un pacchetto
needs-restartingControllare se dopo un aggiornamento serve un riavvio
package-cleanupTrovare pacchetti duplicati, orfani e problematici
yum-builddepInstallare i pacchetti necessari per compilare un RPM sorgente
yum-config-managerAbilitare, disabilitare e aggiungere repository (modifica i file di configurazione)
repoclosure · repodiff · repomanage · repo-graphControllare, confrontare, ripulire e rappresentare in grafico i repository
reposync · repotrackScaricare repository e gruppi di pacchetti
debuginfo-install · find-repos-of-install · yum-debug-dump · yum-debug-restore · yum-groups-managerInformazioni di debug · repository di origine · dump e ripristino della configurazione · gestione dei gruppi

yumdownloader scarica solo i file di pacchetto senza installarli. Con --urls mostra solo gli indirizzi da cui scaricherebbe.

yumdownloader --urls tree
Last metadata expiration check: 0:35:16 ago on Thu Oct 29 05:32:35 2026.
https://repo.almalinux.org/almalinux/9.8/BaseOS/x86_64/os/Packages/tree-1.8.0-12.el9.x86_64.rpm

L'indirizzo del repository e il nome del file compaiono su una riga. Con questo indirizzo puoi scaricare in anticipo i file da portare e installare su un server senza accesso a internet.

repoquery consulta i file che un pacchetto installa e le sue dipendenze.

repoquery -l tree
Last metadata expiration check: 0:35:17 ago on Thu Oct 29 05:32:35 2026.
/usr/bin/tree
/usr/lib/.build-id
/usr/lib/.build-id/e0
/usr/lib/.build-id/e0/e2ec3d46003583b56979e08d437395bd0d2a07
/usr/share/doc/tree
/usr/share/doc/tree/README
/usr/share/licenses/tree
/usr/share/licenses/tree/LICENSE
/usr/share/man/man1/tree.1.gz

-l è l'elenco dei file di quel pacchetto. Contiene un eseguibile, più la documentazione, la licenza e il manuale.

repoquery --requires tree
Last metadata expiration check: 0:35:19 ago on Thu Oct 29 05:32:35 2026.
libc.so.6(GLIBC_2.34)(64bit)
rtld(GNU_HASH)

--requires mostra le librerie necessarie. yum deplist mostra le stesse informazioni più i pacchetti che le forniscono, ma la guida lo indica come deprecated, quindi al suo posto si usa repoquery --deplist.

yum -C repoquery --deplist tree
Last metadata expiration check: 0:38:17 ago on Thu Oct 29 05:32:35 2026.
package: tree-1.8.0-12.el9.x86_64
  dependency: libc.so.6(GLIBC_2.34)(64bit)
   provider: glibc-2.34-170.el9_8.x86_64
  dependency: rtld(GNU_HASH)
   provider: glibc-2.34-170.el9_8.i686
   provider: glibc-2.34-170.el9_8.x86_64

Le righe dependency indicano ciò che serve, e le righe provider i pacchetti che lo forniscono.

Se dopo un aggiornamento serve un riavvio lo si controlla con needs-restarting -r.

needs-restarting -r
No core libraries or services have been updated since boot-up.
Reboot should not be necessary.

Dopo l'aggiornamento del kernel o di una libreria fondamentale, l'avviso cambia indicando che serve un riavvio, e il comando termina con codice di uscita 1.

Eseguito senza opzioni, package-cleanup mostra solo un avviso che chiede di scegliere quale controllo fare.

package-cleanup
package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes

5️⃣ Verificare i repository di yum: repolist e l'opzione enablerepo

Anche con gli strumenti pronti, yum non trova nulla se il pacchetto non è in un repository. Per questo prima si guarda quali repository di yum sono abilitati.

yum repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras

repolist mostra solo i repository con enabled=1 nel file di configurazione. baseos e appstream sono i repository di base della distribuzione, ed epel è un repository aggiunto a parte.

yum repolist --all | head -n 12
repo id                       repo name                                 status
appstream                     AlmaLinux 9 - AppStream                   enabled
appstream-debuginfo           AlmaLinux 9 - AppStream - Debug           disabled
appstream-source              AlmaLinux 9 - AppStream - Source          disabled
baseos                        AlmaLinux 9 - BaseOS                      enabled
baseos-debuginfo              AlmaLinux 9 - BaseOS - Debug              disabled
baseos-source                 AlmaLinux 9 - BaseOS - Source             disabled
crb                           AlmaLinux 9 - CRB                         disabled
crb-debuginfo                 AlmaLinux 9 - CRB - Debug                 disabled
crb-source                    AlmaLinux 9 - CRB - Source                disabled
epel                          Extra Packages for Enterprise Linux 9 - x enabled
epel-cisco-openh264           Extra Packages for Enterprise Linux 9 ope enabled

--all mostra anche i repository disabilitati, insieme alla colonna status. I pacchetti di un repository disabled come crb non si possono installare così come sono.

Per abilitare un repository disabilitato solo in questo comando, aggiungi --enablerepo.

yum --enablerepo=crb repolist
repo id             repo name
appstream           AlmaLinux 9 - AppStream
baseos              AlmaLinux 9 - BaseOS
crb                 AlmaLinux 9 - CRB
epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
extras              AlmaLinux 9 - Extras

crb è entrato nell'elenco. Il file di configurazione resta uguale, quindi al comando successivo esce di nuovo. Per tenere un repository sempre abilitato, si modifica il file di configurazione con yum-config-manager. Puoi vedere i repository che si abilitano e si disabilitano premendo i pulsanti dei comandi nel diagramma qui sotto.

🧭 Repository in cui yum cerca i pacchetti
Diagramma esplicativo
🔍 Comando
$ yum repolist--enablerepo=crb repolist--disablerepo=epel repolist
baseosAttivoAttivo solo stavoltaDisattivo solo stavolta
appstreamAttivoAttivo solo stavoltaDisattivo solo stavolta
extrasAttivoAttivo solo stavoltaDisattivo solo stavolta
epelAttivoAttivo solo stavoltaDisattivo solo stavolta
crbDisattivatoAttivo solo stavoltaDisattivo solo stavolta
➜
yumRepository in cui si cercano i pacchetti564
repolist mostra solo i repository con enabled=1 nel file di configurazione. yum cerca i pacchetti solo nei repository di questo elenco. I pacchetti di un repository disabilitato come crb non si vedono.
Con --enablerepo=crb, crb si abilita solo per questo comando ed entra nell'elenco. Il file di configurazione non cambia, quindi al comando successivo esce di nuovo.
Con --disablerepo=epel, epel esce solo da questo comando. Per abilitare o disabilitare un repository in modo permanente, si usa yum-config-manager, che modifica il file di configurazione.

Aggiungere un nuovo repository come EPEL si riduce a installare un solo pacchetto di repository.

yum install epel-release

Dopo l'installazione viene creato il file epel.repo in /etc/yum.repos.d/, ed epel compare in repolist.

🔲 Simulatore del comando yum

Nel simulatore qui sotto puoi digitare tu stesso yum list, check-update, repolist e i comandi di yum-utils e vedere l'output. L'elenco dei repository usa gli stessi valori di esempio dell'articolo, e i comandi di installazione, rimozione e aggiornamento mostrano solo un avviso.

Simulatore del comando yumyum 4.14.0
[root@server work]#
Con i tasti ↑↓ richiami i comandi digitati prima.

🔢 FAQ & contenuti consigliati

No. Digitando yum delete si ottiene l'errore No such command: delete. Per rimuovere un pacchetto si usa yum remove, ed erase fa la stessa cosa.

Sono lo stesso comando. In dnf, update è un altro nome di upgrade, quindi anche yum help update mostra una guida che inizia con usage: yum upgrade.

Con -C, list e info vengono eseguiti con la cache scaricata, senza collegarsi ai repository. Per installare un pacchetto si scarica il file .rpm con yumdownloader su un altro server, lo si porta sul server e si passa il percorso del file a install.

ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dimostra di essere umano: 10   +   6   =