Qual è il comando corretto per aggiornare Ubuntu ed i suoi pacchetti? Che differenza c'è tra apt-get update
e apt-get upgrade
? Perché, probabilmente, apt-get dist-upgrade
è la scelta migliore? Che confusione! La verità è che aggiornare Ubuntu da linea di comando richiede molteplici passaggi. Vediamo quali sono e presentiamo uno script realizzato da TurboLab.it che svolge automaticamente tutte le operazioni ottimali nell'ordine corretto
Aprire il Terminale
Questo articolo è incentrato sulla procedura per aggiornare Ubuntu ed i pacchetti installati da linea di comando. Per prima cosa, dobbiamo quindi aprire una shell testuale. Se state lavorando via SSH oppure con una edizione spiccatamente "server" (come Ubuntu Server), siete già davanti alla linea di comando, quindi andate oltre.
Se però state impiegando l'edizione "regolare" per PC, cliccate sul pulsante con i 3x3 punti in basso a sinistra e cercate terminale
per lanciare rapidamente l'omonima applicazione
» Leggi anche: Come aprire il terminale di Ubuntu
Aggiornare manualmente Ubuntu ed i pacchetti installati
I comandi da impartire in sequenza per aggiornare Ubuntu e tutti i programmi installati tramite apt-get o Ubuntu software sono:
sudo apt-get clean
: ripulisce la cache locale dei pacchettisudo apt-get update
: scarica la lista aggiornata dei pacchetti e delle nuove versioni disponibili nei repository. Questo comando si limita a recuperare informazioni, ma, in concreto, non installa nullasudo apt-get dist-upgrade -y
: è il comando principale, poiché scarica ed installa le ultime versioni dei pacchetti, delle dipendenze ed, eventualmente, il kernel più recente. In ogni caso, non esegue mai l'avanzamento di versione (v. seguito)sudo do-release-upgrade
: esegue l'avanzamento di versione, passando alla release di Ubuntu successiva (maggiori informazioni)sudo apt-get autoremove -y
: rimuove tutti i pacchetti obsoleti e non più necessari
Da notare che, in questa sequenza, non abbiamo usato sudo apt-get upgrade -y
. Al suo posto, è altamente preferibile sudo apt-get dist-upgrade -y
: quest'ultimo, infatti, gestisce in maniera intelligente l'update delle dipendenze, scaricando e rimuovendo in modo più aggressivo i pacchetti al fine di garantire un aggiornamento in profondità.
Un altro comando popolare che non abbiamo usato e sudo apt full-upgrade
: il motivo è che si tratta sostanzialmente dell'equivalente di sudo apt-get dist-upgrade -y
, ma per il comando apt
. Il risultato è, tuttavia, equivalente.
Quelli citati sono i passaggi essenziali, ma, probabilmente, vorremo chiudere con:
lsb_release -d
: mostra la versione di Ubuntu installata (maggiori informazioni)reboot
: riavvia il sistema. È necessario solo in un numero limitato di circostanze, ma è comunque sempre una buona idea lanciarlo per minimizzare i problemi e caricare l'ultima versione del kernel eventualmente appena installata
Aggiornare Ubuntu con un solo comando: zzupdate
Tutta questa sequenza è veramente difficile da ricordare, per non parlare del fatto che ci obbliga ad attendere il termine di ogni operazione prima di lanciare quella successiva. Per ovviare a questa scomodità ho realizzato zzupdate, un semplice script che si occupa di svolgere l'intera procedura in autonomia.
Per installare zzupdate e le sue dipendenze sul sistema, impartire questo comando (tutto su una sola riga):
sudo apt install curl -y -qq && curl -s https://raw.githubusercontent.com/TurboLabIt/zzupdate/master/setup.sh | sudo sh
La procedura di installazione rende disponibile globalmente un nuovo comando: zzupdate
. D'ora in avanti, per aggiornare automaticamente Ubuntu e tutti i suoi pacchetti basterà dunque impartire:
sudo zzupdate
Lo script si occupa anche di auto-aggiornarsi, di modo da rendere disponibili i nuovi miglioramenti che verranno via via introdotti.
Aggiorna inoltre zzmysqldump e tutti gli altri script realizzati da TurboLab.it.
Configurazione di zzupdate
In linea di massima, zzupdate è pronto all'uso così com'è. Chi però volesse modificare alcuni aspetti del suo comportamento (per escludere, ad esempio, l'avanzamento di versione ed il riavvio), può procedere copiando il file di configurazione in uno fra due percorsi a scelta. Quello raccomandato è la cartella dedicata sotto /etc/
:
sudo cp /usr/local/turbolab.it/zzupdate/zzupdate.default.conf /etc/turbolab.it/zzupdate.conf
Apriamo ora il nuovo file di configurazione:
sudo nano /etc/turbolab.it/zzupdate.conf
» Leggi anche: Guida: modificare i file di configurazione di Linux Ubuntu/CentOS da terminale è facile con "nano" (alternativa a "vi")
I parametri disponibili sono:
REBOOT
: se valorizzato a1
, il sistema viene riavviato al termine della proceduraREBOOT_TIMEOUT
: se è attivato il reboot automatico (v. parametroREBOOT
) indica il numero di secondi da attendere prima di riavviare. Durante il conto alla rovescia, premereCtrl+C
per impedire il riavvioVERSION_UPGRADE
: se valorizzato a1
, esegue l'avanzamento di versione se è disponibile una nuova versione di UbuntuVERSION_UPGRADE_SILENT
: se valorizzato a1
, l'avanzamento di versione avviene in modo automatico, senza chiedere nulla all'utente (maggiori informazioni)COMPOSER_UPGRADE
: se valorizzato a1
ed è installato Composer, esegue l'aggiornamento del suo eseguibile (--self-update
)SWITCH_PROMPT_TO_NORMAL
: se valorizzato a1
, imposta aPrompt=normal
il parametro nel file/etc/update-manager/release-upgrades
. Questo consente di aggiornare anche le installazioni long-term support (LTS) all'ultima release non-LTS disponibile
Lavorare con i profili di zzupdate
In alcune circostanze potremmo voler eseguire lo script con parametri diversi da quelli impostati nel file di configurazione principale. Allo scopo, creiamo un "profilo", ovvero un file di configurazione dedicato.
Immaginiamo di voler creare il profilo server che non esegue l'avanzamento di versione e non riavvia automaticamente la macchina. Iniziamo copiando di nuovo il file di configurazione di default:
sudo cp /usr/local/turbolab.it/zzupdate/zzupdate.default.conf /etc/turbolab.it/zzupdate.profile.server.conf
Si noti il nome del file di destinazione: sostituiamo la stringa server
con il nome del nostro profilo, lasciando inalterato il resto.
Ora apriamolo e modifichiamo i parametri di nostro interesse come visto in precedenza:
Dopo aver salvato le modifiche al profilo, potremo lanciare l'esecuzione con sudo zzupdate server
.
Possiamo naturalmente creare molteplici profili, uno per ogni situazione.
File di configurazione: percorsi
Oltre al già citato percorso /etc/turbolab.it/zzupdate.conf
, lo script legge la configurazione e i profili anche dalla cartella del programma stesso: /usr/local/turbolab.it/zzupdate.conf
.
Se presenti, le configurazioni vengono caricate in quest'ordine:
/etc/turbolab.it/zzupdate.default.conf
/etc/turbolab.it/zzupdate.conf
/usr/local/turbolab.it/zzupdate.conf
/etc/turbolab.it/zzupdate.profile.nome_mio_profilo.conf
(solo se specificato il profilo)/usr/local/turbolab.it/zzupdate.profile.nome_mio_profilo.conf
(solo se specificato il profilo)
I parametri eventualmente presenti nei file "successivi" hanno la priorità. Se invece non sono ridichiarati, rimangono in vigore i valori presenti nei file "precedenti".