Aggiornamento ad una nuova versione di openSUSE

Parte 2 – Aggiornamento tradizionale non in linea
aggiornamento openSUSE Leap

Abbiamo visto qui come passare da una versione di openSUSE a quella successiva in linea, con un minimo tempo di inattività dovuto al riavvio dopo l’aggiornamento. Però nel caso in cui la nostra installazione fosse particolarmente datata, il processo risulterebbe alquanto laborioso, con il rischio di finire con un’installazione non funzionante per qualcosa che ha interrotto il passaggio di versione (mancanza di corrente, disconnessione dalla rete, o altro). Quindi, se qualche ora di non disponibilità dei servizi installati non è un problema, è preferibile ricorrere all’aggiornamento tradizionale non in linea.

Si tratta di far partire il sistema da DVD (o da chiavetta USB) e selezionare upgrade invece di install. Il metodo è più sicuro e versatile dell’aggiornamento a caldo con zypper dup, perché il sistema operativo originale rimane non in linea e l’aggiornamento viene fatto da un piccolo sistema live che parte da DVD1.

Dato che il DVD non contiene tutti i pacchetti disponibili, molto probabilmente non sarà possibile aggiornare alcuni pacchetti installati, ma bisognerà sistemarli successivamente. Un altro problema è costituito dal fatto che i file di backup creati potrebbero esaurire tutto lo spazio della partizione di root.

Nuova installazione o aggiornamento

Perché preferire un aggiornamento ad un’installazione ex novo? Con la nuova installazione ci si libera di vecchie librerie, di configurazioni non funzionanti, i dati contenuti nella partizione /home, se non formattata, sono mantenuti. L’installazione è generalmente più rapida e meno problematica.

Comunque, altri dati non sono mantenuti, come i database MariaDB, l’archiviazione delle email IMAP, le configurazioni di sistema, come quelle per Postfix o Apache. Tutto ciò rende un aggiornamento più conveniente e può realmente far risparmiare tempo in caso di configurazioni server che richiedono ben più di qualche ora per la messa a punto ex novo.

Migrazione ad una nuova versione di Leap offline

Così come l’aggiornamento a caldo, anche l’aggiornamento non in linea potrebbe fallire. E’ quindi fortemente consigliato eseguire un backup completo prima di procedere. Se l’aggiornamento non riesce, è possibile ripristinare e riprovare, modificando ciò che è necessario per evitare il problema precedente, installare di nuovo o tentare un aggiornamento live.

Preparazione all’aggiornamento di versione

  • Fai un backup completo prima di procedere con l’aggiornamento.
  • Assicurati di leggere la lista dei bug e le note di rilascio per la versione che intendi installare e, eventualmente, per le versioni intermedie.
  • Installa tutti gli aggiornamenti disponibili per la versione corrente, prima di procedere.
  • Il salto di 3 o 4 versioni potrebbe funzionare, ma non è assicurato, rimane consigliato procedere dalla versione installata a quella immediatamente successiva.
  • Scarica l’immagine iso della versione che intendi installare, verifica il checksum e masterizza il DVD, o crea una chiavetta USB avviabile2. Non puoi utilizzare i CD live per l’aggiornamento.
  • Assicurati di avere spazio libero sufficiente in tutte le partizioni di sistema. Il processo di aggiornamento non fa questa verifica, la mancanza di spazio bloccherà il processo e renderà il sistema non più funzionante, né quello aggiornato, né quello precedente.

Avvio dell’aggiornamento

Avvia da DVD (o USB) e seleziona upgrade3

openSUSE Leap upgrade

Scegli la lingua d’installazione e la tastiera

Language, Keyboard and License Agreement

Scegli poi la partizione da aggiornare

Partition or System to Update

Tutti i repository precedentemente utilizzati sono rimossi, in quanto puntano alla vecchia distribuzione

Previously Used Reposiories

Attiva i repository per la nuova distribuzione

Online Repositories

Di norma si attivano solo i repository oss e non-oss, dato che tutto quello che risulta installato ma non disponibile nel DVD non verrà aggiornato e rimarrà alla versione della distribuzione precedente

List of Online Repositories

La schermata Installation settings, parte centrale del processo di aggiornamento, consiste delle seguenti sezioni:

  • System
  • Update Options
  • Packages
  • Backup
  • Language
  • Keyboard Layout
  • Booting
Installation Settings

Se vedi qualcosa che non va, puoi fare clic sulla sezione interessata e correggere le impostazioni. In particolare nella sezione Packages è importante risolvere i possibili conflitti tra i pacchetti installati e gli aggiornamenti disponibili. Se si verificano conflitti o dipendenze non risolte, è meglio disinstallare i pacchetti in conflitto e fare riprovare l’operazione al gestore dei pacchetti.

Warning - YaST2

Una volta apportate le modifiche, puoi fare click su Update

Installation Settings

Il processo di aggiornamento è piuttosto lento rispetto ad una nuova installazione, soprattutto in una macchina non particolarmente performante può durare anche diverse ore.

Ci potrebbero essere dei pacchetti che non è possibile installare correttamente, ma in questa fase non puoi fare nulla.

Alla fine l’aggiornamento termina e la macchina si riavvia.

Dopo l’aggiornamento

Ci sono ancora alcune operazioni da completare dopo che l’aggiornamento è apparentemente finito.

Pacchetti non aggiornati

Probabilmente il DVD non fornisce alcuni dei pacchetti nel sistema installato, che dovranno essere scaricati dai repository di openSUSE, o da altri repository.

Assicurati che l’elenco dei repository sia corretto.

Possibili correttivi:

  • Esegui zypper dup. Scarica nuovamente tutti i pacchetti, da evitare in quanto potenzialmente rischioso per l’integrità del sistema.
  • Esegui zypper up. Più sicuro, aggiorna tutto ciò che ha una nuova versione online (senza cambio di fornitore).
  • Esegui una ricerca nel database rpm e aggiorna manualmente ciò che è necessario aggiornare. Per esempio, puoi utilizzare uno dei seguenti script, il primo genera un file csv, che può essere importato in un foglio di calcolo per essere esaminato
rpm -q -a --queryformat "%{INSTALLTIME};%{INSTALLTIME:day}; \
    %{BUILDTIME:day}; %{NAME};%{VERSION}-%-7{RELEASE};%{arch}; \
    %{VENDOR};%{PACKAGER};%{DISTRIBUTION};%{DISTTAG}\n" \
    | sort | cut --fields="2-" --delimiter=\; \
    | tee rpmlist.csv | less -S
rpm installati

il secondo genera una tabella per l’esame a video

rpm -q -a --queryformat "%{INSTALLTIME}\t%{INSTALLTIME:day} \
    %{BUILDTIME:day} %-30{NAME}\t%15{VERSION}-%-7{RELEASE}\t%{arch} \
    %25{VENDOR}%25{PACKAGER} == %{DISTRIBUTION} %{DISTTAG}\n" \
    | sort | cut --fields="2-" | tee rpmlist | less -S
rpm installati

In entrambi i casi, l’elenco è ordinato per data di installazione di tutti i pacchetti nel sistema, con diversi campi che permettono di riconoscere se un pacchetto appartiene al vecchio sistema o al sistema aggiornato. A questo punto si tratta di aggiornare ciascuno di essi con zypper in nome_pacchetto, oppure di avviare il gestore YaST e selezionare uno per uno i pacchetti da aggiornare4.

Alla fine riavvia e verifica che tutto funzioni correttamente.

File di configurazione obsoleti

Il comando rpmconfigcheck genera un file con un elenco di file di configurazione eventualmente da controllare

rpmconfigcheck
rpmconfigcheck

Nell’esempio di cui sopra, la vecchia configurazione rimane attiva, e quella nuova dall’rpm è salvata con estensione rpmnew. Se fosse attivata la nuova configurazione, il vecchio file di configurazione verrebbe salvato con estensione rpmsave.

Puoi sia modificare la vecchia configurazione prendendo ciò che decidi dalla nuova, sia modificare la nuova e aggiungere i tuoi cambiamenti presi dalla precedente configurazione.

Conclusione

Alla fine lancia

zypper patch

oppure

YaST Online Update

yast2
YaST2 Online Update

Parliamone


Note

1. SDB:Offline upgrade - openSUSE Wiki. (n.d.-b). Retrieved July 27, 2024, from https://en.opensuse.org/SDB:Offline_upgrade.
2. Create installation USB stick - openSUSE Wiki. (n.d.). Retrieved July 27, 2024, from https://en.opensuse.org/Create_installation_USB_stick.
3. Se stai aggiornando a openSUSE 13.2 o versioni successive.
Se stai aggiornando a openSUSE 13.1 o versioni precedenti, scegli installation e nella shermata successiva (installation mode) seleziona update an existing system.
4. Nel caso in esempio è stato necessario rimuovere il pacchetto samba con il comando
sudo zypper remove --clean-deps samba samba-client