YUM sta per Yellowdog Updater Modified, è uno strumento di gestione dei pacchetti basato su RPM (RedHat Package Manager) per sistemi Linux. Yum è stato introdotto nella versione RHEL 5.10 in poi e nel suo comando deprecato “up2date”.
Yum, il comando aiuta tutti gli utenti e gli amministratori di sistema a cercare le informazioni sui pacchetti e quindi installare, aggiornare e rimuovere tutti i file relativi a rpm dai sistemi. Il vantaggio dell’utilizzo di YUM sarà l’esecuzione automatica delle risoluzioni delle dipendenze in un unico comando, anche i suoi supporti per installare i pacchetti da vari repository di terze parti senza alcun problema di dipendenze. Yum è stato sviluppato e rilasciato sotto GPL (General Public License), il che significa che rientra in licenze software gratuite che consentono all’utente finale di modificare il codice sorgente del software.
Il file di configurazione principale di YUM si trova in “/etc/yum.conf” e le estensioni .repo sono archiviate nella directory “/etc/yum.repos.d”. Usando il “comando yum” possiamo installare tutti i pacchetti direttamente da Internet, inoltre possiamo impostare un repository yum locale usando .iso o DVD. L’utilizzo del repository locale ci aiuterà a eseguire un aggiornamento / patching in blocco dei sistemi nella rete e consente di risparmiare una buona quantità di larghezza di banda Internet. L’utilità yum è un grande sollievo su tutti i tipi di problemi di dipendenza dal software basato su .rpm e aiuta tutti gli installatori ad accelerare le attività relative alla gestione dei pacchetti.
Nota:
Su RHEL / CentOS 8 viene fornita la versione aggiornata (v4.0.4) del gestore di pacchetti YUM, che è denominato DNF (Dandified Yum). DNF è stato introdotto inizialmente in Fedora 18 e ora è il gestore di pacchetti predefinito su Fedora 22 e RHEL 8.
In questo articolo vedremo i 15 comandi yum più utilizzati, che aiuteranno tutti i neofiti e gli amministratori di sistema per le loro attività quotidiane. Tutti gli esempi seguenti di comandi “yum” sono testati su RHEL e CentOS 7.8.
Prerequisiti:
Sistema operativo: CentOS / RHEL
Account utente: utente root o account utente con privilegi sudo
Consigliato per eseguire tutti i comandi amministrativi come con privilegio sudo anziché root
Difficoltà a configurare gli utenti sudo?
La sintassi globale del comando yum in Linux:
yum [opzioni] [comando] [pacchetto …]
La tabella seguente fornisce una panoramica delle opzioni del comando “yum” in RHEL / CentOS
Tabella dei contenuti
1. Come controllare eventuali pacchetti disponibili per l’aggiornamento?
$ sudo yum check-update
Nota:
Usando il comando precedente possiamo vedere (se ci sono disponibili) pacchetti dai repository abilitati per un aggiornamento. Si consiglia sempre agli installatori di esaminare e verificare l’elenco dei pacchetti disponibili prima di eseguire alla cieca il sottocomando “update” per aggiornare il sistema, poiché a volte i nuovi aggiornamenti / patch potrebbero non essere compatibili con le applicazioni o l’hardware esistenti. Nell’output sopra non ho aggiunto l’elenco completo, in quanto ha quasi 116 pacchetti disponibili per l’aggiornamento, tuttavia uno screenshot con solo poche righe per darti un’idea al riguardo. Aggiungi ‘wc -l’ per ottenere il conteggio totale dei pacchetti disponibili (come ‘yum check-update | wc -l).
2. Come installare un particolare pacchetto?
$ sudo yum installa vsftpd
Nota:
Ho usato il comando precedente per installare un particolare pacchetto “vsftpd”, una volta eseguito il comando ti chiederà conferma e digita “y” per procedere con l’installazione. Inoltre, possiamo installare il pacchetto senza conferma utilizzando “-y” alla fine del comando precedente.
3. Come aggiornare un particolare pacchetto?
$ sudo yum aggiornamento vsftpd -y
Nota:
Prendiamo lo stesso pacchetto “vsftpd”, poiché sappiamo che questo pacchetto esiste già nel sistema. Dopo un paio di giorni verrai avvisato dal rilascio dei nuovi aggiornamenti. Questa volta voglio solo aggiornare solo un particolare pacchetto, nel nostro esempio “vsftpd” utilizzando il comando precedente possiamo aggiornare solo il pacchetto interessato dall’intero gruppo di nuove versioni. Per aggiornare l’intero sistema basta usare il seguente comando.
$ sudo yum update -y
4. Come escludere un particolare pacchetto durante l’aggiornamento dell’intero sistema?
Nota:
Per una migliore comprensione, prima lascia che ti mostri un elenco di tutti i pacchetti disponibili da aggiornare utilizzando il seguente comando. Da questo elenco possiamo scegliere un particolare pacchetto da escludere. Per aggiungere i numeri di riga nell’elenco seguente, ho utilizzato il comando “cat” con l’opzione “-n”.
$ sudo yum list aggiornamenti | cat -n
Nota:
In questo esempio ho selezionato il pacchetto “device-mapper” che è il quindicesimo numero nell’elenco sopra da escludere durante l’aggiornamento dell’intero sistema. Questo può essere fatto usando uno dei seguenti comandi.
$ sudo yum update –exclude = device-mapper \ * OPPURE $ sudo yum -x “package_name *” update
Nota:
Per escludere più di un (multi) pacchetto in un singolo comando, utilizzare uno dei seguenti comandi.
$ sudo yum update –exclude = device-mapper \ * –exclude = PackageKit \ * OR
$ sudo yum -x “nome_pacchetto1 *” -x “nome_pacchetto2 *” aggiornamento
Nota:
Aggiornamenti regolari delle correzioni per la sicurezza possono prevenire le vulnerabilità. Utilizzare il seguente comando per installare / aggiornare solo le correzioni di sicurezza. Nell’output sottostante puoi vedere che abbiamo quasi 519 pacchetti disponibili per gli aggiornamenti nel sistema, di cui recupererà solo “1 patch” che appartiene alla correzione della sicurezza.
$ sudo yum update –security

5. Come rimuovere un particolare pacchetto?
$ sudo yum rimuovi vsftpd
Nota:
6. Come ottenere un elenco combinato di tutti i pacchetti?
$ sudo yum elenca tutto
Nota:
Con il comando precedente possiamo ottenere l’elenco combinato di informazioni di tutti i pacchetti installati e disponibili. Puoi vedere le differenze nell’output sopra.
$ sudo yum list installato

Nota:
Qui puoi ottenere l’elenco di tutte le informazioni sui pacchetti attualmente installati nel sistema.
Nota:
Utilizzando il comando precedente possiamo elencare tutti i pacchetti installati che iniziano con “http”. Si chiama espressione glob con virgolette doppie, può essere usata per elencare tutte le versioni di alcuni componenti specifici in quanto sono contraddistinti da numeri.
7. Come trovare informazioni dettagliate su un pacchetto specifico?
$ sudo yum info vsftpd
Nota:
Utilizzando il comando precedente possiamo ottenere informazioni dettagliate su un particolare pacchetto come versione, data di rilascio, dimensione, riepilogo. Nell’output sopra, puoi vedere le informazioni dettagliate sul pacchetto ‘vsftpd’
8. Come cancellare le informazioni della cache dalla directory della cache?
$ sudo yum clean all
Nota:
Il comando precedente può essere utilizzato per cancellare le informazioni memorizzate nella cache dal nostro sistema. Per impostazione predefinita, yum memorizzerà tutte le informazioni sul pacchetto nella directory “/ var / cache / yum” e utilizza lo spazio su disco del sistema fino a quando non puliamo le voci accumulate nella directory della cache. A volte i dati memorizzati nella cache non cancellati possono causare problemi quando si tenta di installare / aggiornare il pacchetto o c’è anche la possibilità di mostrare la versione sbagliata del pacchetto anche dopo che il repository ha aggiornato i pacchetti. Quindi si consiglia di pulire di tanto in tanto le voci accumulate nella directory yum cache.
9. Come installare un gruppo di pacchetti?
Nota:
Nota:
Dopo aver trovato il riepilogo delle informazioni sul gruppo, controlliamo l’elenco dei pacchetti di gruppo disponibili utilizzando il seguente comando.
$ sudo yum grouplist

Nota:
Il comando precedente elencherà tutti i pacchetti di gruppo disponibili. Nell’output sopra ho allegato solo alcuni nomi di gruppi dall’elenco. Ora possiamo usare il sottocomando ‘groupinfo’ per avere un’idea migliore dei pacchetti che fanno parte del gruppo.
$ sudo yum groupinfo ‘Server Web di base’
Nota:
Come puoi vedere nell’output sopra, il “Server Web di base” ha in bundle tre gruppi obbligatori come (base, core, server web) e altri gruppi opzionali. Se vuoi conoscere ciascuno di questi dettagli del pacchetto di gruppo, usa l’argomento ‘groupinfo’ con questi nomi di gruppo. Nella nostra demo, non abbiamo bisogno del pacchetto “Basic Web Server” in bundle. Qui installeremo solo il server web, quindi controlliamo le informazioni sul server web e installiamolo sul nostro server.
$ sudo yum groupinfo ‘web-server’

$ sudo yum groupinstall ‘web-server’
Nota:
Infine, abbiamo installato il pacchetto di gruppo utilizzando il sottocomando “groupinstall”. Nell’output sopra puoi vedere il nome dei pacchetti installati.
10. Come trovare i nomi dei pacchetti?
$ sudo yum cerca samba
Nota:
Questo argomento di “ricerca” è molto utile, ad esempio: se non ricordi o non conosci il nome del pacchetto, puoi utilizzare il comando precedente per cercare in tutti i pacchetti disponibili il nome che hai specificato.
11. Come installare un pacchetto di estensione .rpm usando yum?
$ sudo yum localinstall epel-release-latest-7.noarch.rpm
Nota:
A volte alcuni pacchetti non sono disponibili nei nostri repository yum, quindi potrebbe essere necessario scaricare il pacchetto relativo a rpm e installarlo in un metodo tradizionale di utilizzo dell’installazione rpm come “rpm -ivh xyz-1.2.3.rpm” ma questo pacchetto richiederà dipendenze e queste dipendenze sono disponibili nel repository yum, quindi naturalmente, prima installiamo le dipendenze usando il comando yum, quindi installiamo i file rpm originali. Per superare il doppio tentativo possiamo usare il sottocomando ‘localinstall’ per installare entrambe le dipendenze e il pacchetto rpm in un unico comando yum. Puoi vedere i dettagli nell’output sopra.
12. Come aggiornare il sistema con le ultime versioni?
$ sudo yum upgrade -y
Nota:
Il bello è che possiamo usare entrambi i comandi secondari “aggiorna e aggiorna” per ottenere l’ultima versione dei pacchetti nel nostro sistema, ma c’è una piccola differenza tra loro. Il sottocomando ‘upgrade’ rimuoverà tutti i pacchetti obsoleti durante l’aggiornamento del sistema mentre ‘update’ no. Puoi utilizzare il comando sopra solo nella stessa famiglia come se desideri aggiornare la tua versione dalla 7.4 alla 7.8, ma per aggiornare dalla 7.4 alla 8.1 questo comando non è raccomandato. Per passare a una famiglia diversa, è meglio fare una nuova installazione del sistema operativo 8.1.
13. Come eseguire il downgrade di un pacchetto?
Nota:
Per una migliore comprensione aggiornerò prima il pacchetto “http-parser” dalla versione (2.7.1-8.el7 alla 2.7.1-8.el7_7.2), quindi eseguirò il sottocomando di downgrade per tornare alla versione originale . A volte, ci saranno problemi di compatibilità con le applicazioni esistenti o l’hardware dopo i nuovi aggiornamenti di pochi pacchetti, in tal caso potremmo forzare il ripristino / downgrade di quei pacchetti nella versione precedente.
$ sudo yum list installato | grep http-parser

$ sudo yum update http-parser

Nota:
$ sudo yum downgrade http-parser-2.7.1-8.el7

Nota:
14. Come visualizzare i dettagli / le informazioni del repository?
$ sudo yum repolist
Nota:
$ sudo yum repolist all
Produzione:
15. Come elencare la storia di yum?
$ sudo yum history O $ sudo yum history list
Nota:
Panoramica dei sottocomandi:
Informazioni: mostrerà un dettaglio completo su una o più transazioni particolari.
Annulla: viene utilizzato per annullare una determinata transazione.
Ripeti: viene utilizzato per ripetere una determinata transazione.
Rollback: anche questa funzione è simile a “Annulla” ma ripristinerà tutte le transazioni tra l’ID specifico allo stato corrente del sistema.
(a) Come ottenere maggiori dettagli su una particolare transazione dalla cronologia yum?
$ sudo yum informazioni sulla cronologia 10
Nota:
(b) Come annullare una transazione?
$ sudo yum history undo 10
Nota:
(c) Come rifare una transazione?
$ sudo yum history redo 10
Nota:
(d) Come ripristinare le transazioni?
$ sudo yum history rollback 10
Nota:
AVVERTIMENTO:
Il comando di rollback non è supportato nelle versioni precedenti sui seguenti pacchetti:
SELinux
SELinux-policy- *
kernel
glibc e le sue dipendenze come gcc