Yum è un gestore di pacchetti utilizzato su Red Hat, CentOS e altre distribuzioni Linux che utilizzano RPM Package Manager. Yum viene utilizzato per installare, aggiornare, eliminare o manipolare in altro modo i pacchetti installati su questi sistemi Linux.
In questo tutorial tratteremo il comando yum update:cos'è, come usarlo e tutti i diversi comandi che potresti aver bisogno di sapere quando desideri aggiornare i pacchetti installati sul tuo sistema.
Come funziona l'aggiornamento di yum?
È possibile utilizzare il comando yum update per aggiornare le applicazioni installate su un sistema. Se esegui il comando senza alcun nome di pacchetto specificato, aggiornerà tutti i pacchetti sul sistema.
$ yum update
Quando esegui questo comando, yum inizierà controllando i suoi repository per una versione aggiornata del software attualmente installato sul tuo sistema. Lo screenshot seguente mostra il tipo di output che vedrai in genere quando esegui per la prima volta il comando yum update.
Come puoi vedere, l'output di yum elenca prima i repository su cui sta interrogando, che sono quelli predefiniti per CentOS:AppStream, Base ed Extras. Sotto, yum elenca i vari pacchetti per i quali ha trovato aggiornamenti.
Alla fine di questo output, yum visualizzerà il "Riepilogo transazione", che mostra il numero totale di pacchetti che devono essere installati e aggiornati.
In questo esempio, 166 pacchetti vengono aggiornati e 6 nuovi pacchetti vengono installati.
Nel caso ti stia chiedendo perché vengono installati nuovi pacchetti quando dovremmo solo aggiornare le applicazioni, alcuni nuovi pacchetti software potrebbero essere diventati parte di questa distribuzione Linux o alcune applicazioni aggiornate potrebbero fare affidamento su pacchetti aggiuntivi che non sono ancora installati.
Dopo aver esaminato l'elenco dei software che yum prevede di aggiornare, puoi confermare queste modifiche digitando "y" e premendo invio.
Yum eseguirà quindi gli aggiornamenti, che potrebbero richiedere del tempo a seconda della velocità della tua connessione e del sistema stesso.
Al termine, otterrai un riepilogo finale, che elencherà tutti i pacchetti che sono stati aggiornati correttamente, nonché eventuali errori riscontrati.
Aggiorna senza controllo gpg
È possibile utilizzare le chiavi GPG per verificare l'autenticità di un pacchetto RPM. L'opzione –nogpgcheck in yum gli indicherà di saltare il controllo delle firme GPG sui pacchetti. Questo è utile nei casi in cui hai un pacchetto non firmato o semplicemente non hai la chiave GPG.
$ yum update --nogpgcheck
Questa è una soluzione rapida se si verifica un errore come "Nome pacchettoOfPackage.rpm non è firmato .. installazione non riuscita!" quando si esegue il normale comando di aggiornamento yum. L'opzione –nogpgcheck ignorerà questo avviso e procederà comunque con l'aggiornamento del pacchetto.
Aggiorna da un repository locale
È possibile impostare repository locali per yum da interrogare quando esegue un aggiornamento. Questo viene fatto spesso se desideri utilizzare yum per aggiornare i pacchetti che non sono inclusi nei repository predefiniti o se devi aggiornare un sistema offline.
Innanzitutto, posiziona tutti i file RPM aggiornati in una nuova cartella. In questo esempio useremo /root/rpms.
Quindi, vai alla directory seguente dove puoi vedere tutti i file repository per yum:
$ cd /etc/yum.repos.d
Per configurare un repository locale, crea un nuovo file in questa directory.
$ vi MyRepo.repo
All'interno del tuo file repository, configuralo in questo formato, modificando le righe se necessario:
[MyRepo] name=My Local Repo baseurl=file:///root/rpms enabled=1 gpgcheck=0
La grande differenza tra un repository locale e un repository remoto è nella riga "baseurl", dove il protocollo file:// specifica un file locale, al contrario dei protocolli remoti http:// o ftp://
Dopo aver salvato il file, imposta i permessi corretti:
$ chmod 644 MyRepo.repo
Il repository ora dovrebbe essere pronto per l'uso. Assicurati di svuotare la cache di yum prima di tentare un comando di aggiornamento di yum:
$ yum clean all
Mostra patch
Yum può visualizzare le patch di sicurezza disponibili, senza installarle, con questo comando:
$ yum updateinfo list security
Se non restituisce alcun output, come nella schermata sopra, significa che non sono disponibili patch di sicurezza per nessun software sul tuo sistema.
Aggiorna un singolo pacchetto
Se devi aggiornare un determinato pacchetto senza eseguire un aggiornamento per ogni applicazione installata, specifica semplicemente il nome del pacchetto nel comando yum update.
$ yum update name-of-package
È possibile specificare più pacchetti, separati da uno spazio. Devi avere il nome del pacchetto digitato perfettamente affinché yum lo trovi nei suoi repository; se non sei sicuro del nome di un pacchetto, controlla prima quali pacchetti sono attualmente idonei per gli aggiornamenti:
$ yum check-update
Aggiorna tutti i pacchetti tranne uno
Se devi eseguire il comando yum update per aggiornare tutti i pacchetti ma desideri escludere un pacchetto, puoi specificare l'opzione –exclude.
Una situazione comune in cui gli amministratori potrebbero ritenerlo necessario è con gli aggiornamenti del kernel poiché si tratta di aggiornamenti importanti che potrebbero causare errori imprevedibili su un server di produzione. Tuttavia, potrebbero comunque voler eseguire il comando per aggiornare le applicazioni meno sensibili.
Per escludere un pacchetto (in questo esempio, quelli relativi al kernel):
$ yum update --exclude=kernel*
L'asterisco funge da carattere jolly, nel caso in cui siano presenti più pacchetti correlati o non si conosca il nome completo del pacchetto.
In alternativa:
$ yum update -x 'kernel*'
Escludi più pacchetti
Puoi escludere più pacchetti con più flag –exclude.
$ yum update --exclude=kernel* --exclude=httpd
Usa questo flag come nell'esempio sopra, o il flag -x, tutte le volte che è necessario.
Controlla quando è stato eseguito l'ultimo aggiornamento di yum
Per visualizzare un elenco di transazioni yum, con la data e l'ora in cui erano in esecuzione, usa il comando cronologia yum.
$ yum history
Nello screenshot qui sopra, puoi vedere che l'ultima volta che hai aggiornato il software è stato il 4 gennaio.
Aggiornamento rollback (ripristino)
Una grande caratteristica di yum è che ti consente di annullare un aggiornamento recente, ripristinando così i pacchetti aggiornati alle versioni precedenti.
A ciascuna azione yum (installazione, aggiornamento, cancellazione, ecc.) viene assegnato un ID transazione e questo ID deve essere specificato quando si annulla un aggiornamento yum. Per vedere un elenco di ID transazione per operazioni yum recenti, usa questo comando:
$ yum history
Nello screenshot sopra, puoi vedere che l'ultima operazione eseguita con yum è stata l'installazione del pacchetto httpd. L'annullamento di un'installazione o di un aggiornamento funziona allo stesso modo, quindi in questo esempio annulleremo questa recente installazione di httpd. Come mostrato nello screenshot, questa transazione ha un ID 7.
Per annullare questa modifica e ripristinare il programma alla versione precedente, emettere questo comando:
$ yum history undo 7
Come al solito, yum riassumerà le modifiche da apportare e ti chiederà se desideri procedere con un prompt S/N. Inserisci Y e la transazione specificata verrà annullata.
Ripulire un aggiornamento yum fallito (risoluzione dei problemi)
Se uno o più pacchetti non vengono aggiornati correttamente quando esegui il comando yum update, il sistema può finire con l'installazione di pacchetti duplicati (2 versioni dello stesso programma).
A volte, seguire le istruzioni di ripristino nella sezione precedente può risolvere il problema. Se ciò non funziona, puoi rimuovere i pacchetti duplicati sul tuo sistema con questo comando:
$ package-cleanup --dupes
Yum memorizza una cache di informazioni per pacchetti, metadati e intestazioni. Se riscontri un errore, svuotare la cache di yum è un buon primo passo per la risoluzione dei problemi. Usa il seguente comando per farlo:
$ yum clean all
Salta gli errori
Durante l'aggiornamento o l'installazione di un pacchetto, tale pacchetto potrebbe richiedere software aggiuntivo per funzionare correttamente. Yum è a conoscenza di queste dipendenze e cercherà di risolverle durante gli aggiornamenti installando o aggiornando i pacchetti extra necessari.
Se yum ha problemi a installare le dipendenze necessarie, produce un errore e non procede oltre. Questo è un problema se hai altri pacchetti che devono essere aggiornati.
Per istruire yum a procedere con l'aggiornamento di altri pacchetti e saltare quelli con dipendenze interrotte, puoi specificare il comando –skip-broken nel tuo comando di aggiornamento yum.
$ yum update --skip-broken
Ottieni un elenco di pacchetti che necessitano di un aggiornamento
L'esecuzione del comando yum update normalmente, senza opzioni aggiuntive, produrrà un elenco di aggiornamenti disponibili.
$ yum update
Se desideri vedere alcune informazioni aggiuntive sugli aggiornamenti del pacchetto disponibili, digita questo comando:
$ yum updateinfo
Per visualizzare le informazioni sugli aggiornamenti di sicurezza disponibili per il sistema, digita questo comando:
$ yum updateinfo security
Differenza tra gli aggiornamenti di yum check e l'aggiornamento dell'elenco
Sebbene i due comandi suonino simili, quindi c'è una differenza tra il controllo degli aggiornamenti e l'elenco degli aggiornamenti in yum.
$ yum list updates
Il comando per elencare gli aggiornamenti, mostrato sopra, elencherà tutti i pacchetti nei repository che hanno un aggiornamento disponibile. Tieni presente che alcuni dei pacchetti nei repository potrebbero non essere nemmeno installati sul tuo sistema.
$ yum check-update
Il comando per verificare la presenza di aggiornamenti, visto sopra, è un modo per verificare la presenza di aggiornamenti senza richiedere l'interazione dell'utente. Questo è il comando per il quale sceglieresti se stessi codificando uno script per verificare la presenza di aggiornamenti, ad esempio.
Il comando check-update restituirà un valore di uscita di 100 se ci sono pacchetti che hanno aggiornamenti disponibili e restituirà un valore di uscita di 0 se non ci sono aggiornamenti disponibili.
Un valore di 1 viene restituito se si verifica un errore. Usa questi codici di uscita per codificare lo script di conseguenza.
Avvisa quando sono disponibili aggiornamenti
Ci sono alcuni pacchetti che possono aiutare a gestire gli aggiornamenti yum sul tuo sistema. Alcuni possono persino avvisare gli amministratori quando yum ha aggiornamenti disponibili per l'installazione. Uno di questi servizi si chiama yum-cron.
Installa yum-cron usando yum:
$ yum install yum-cron
Imposta il servizio yum-cron per l'avvio all'avvio:
$ systemctl enable yum-cron.service $ systemctl start yum-cron.service
Configura le impostazioni per yum-cron all'interno del file di configurazione usando vi o il tuo editor di testo preferito:
$ vi /etc/yum/yum-cron.conf
In questo file è possibile specificare se gli aggiornamenti devono essere applicati automaticamente o meno. Se desideri solo ricevere notifiche, compila le informazioni e-mail all'interno del file di configurazione. Yum-cron ti invierà quindi un'e-mail ogni volta che sono disponibili aggiornamenti per il tuo sistema.
apply_updates = no #don’t apply updates automatically email_from = [email protected] email_to = [email protected] email_host = localhost
Quale porta utilizza yum update
Yum usa la porta 80 durante il controllo degli aggiornamenti. Se guardi all'interno dei file del repository sul tuo sistema, vedrai che tutti i collegamenti all'interno iniziano con http.
Se devi creare una regola nel firewall per consentire a yum di funzionare, devi consentire la porta 80.
Yum aggiornamento vs. aggiornamento
Finora abbiamo parlato solo del comando yum update in questo tutorial, ma c'è un altro comando molto simile:yum upgrade.
$ yum upgrade
C'è una piccola differenza tra questi due comandi. Yum update aggiornerà i pacchetti sul tuo sistema, ma non rimuoverà i pacchetti obsoleti.
Yum upgrade aggiornerà anche tutti i pacchetti sul tuo sistema, ma rimuoverà anche i pacchetti obsoleti.
Questo intrinsecamente rende yum update l'opzione più sicura, dal momento che non devi preoccuparti di rimuovere accidentalmente un pacchetto necessario durante l'aggiornamento del software.
Usa una certa discrezione quando esegui il comando yum upgrade, poiché potrebbe non preservare alcuni pacchetti che stai ancora utilizzando.
Alla fine, spero che il tutorial ti sia utile.
Continua a tornare.