SDB:Aggiornamento del sistema ad una nuova versione

Questa guida mostra come utilizzare Zypper per eseguire un aggiornamento live ad una nuova versione di openSUSE.
Provato su openSUSE Articoli consigliati Articoli correlati
Icon-checked.png

Icon-manual.png Icon-help.png

Un aggiornamento live dalla versione precedente è ufficialmente supportato. Questo permette di eseguire un aggiornamento completo del sistema operativo senza dover ripartire da zero.


Sommario

Questa pagina spiega come eseguire uno strumento o una serie di passaggi da riga di comando per aggiornare il sistema all'ultima versione di openSUSE.

Eseguire un aggiornamento live ha dei vantaggi, ma anche degli svantaggi.

Tra i vantaggi:

  • vengono scaricati solo i pacchetti necessari per l'aggiornamento, utilizzando quindi molta meno banda;
  • durante l'aggiornamento si può continuare ad utilizzare la postazione di lavoro (anche se questo non è raccomandato), l'unico tempo morto sarà il riavvio dopo l'aggiornamento;
  • non si deve usare un DVD, quindi non c'è bisogno di un masterizzatore DVD. (Si può anche eseguire l'avvio da rete o da un chiavetta USB, ed installare il resto da rete...).

Gli svantaggi:

  • se per una qualsiasi ragione l'aggiornamento si interrompe (ad esempio per un'interruzione elettrica o per una disconnessione della rete) e il processo non riesce continuare, ci si potrebbe ritrovare con un sistema non funzionante (naturalmente questo dipende dal punto in cui il processo si è interrotto);
  • se si hanno più sistemi da aggiornare è necessario utilizzare ogni volta la banda disponibile, dunque potrebbe essere meglio scaricare un'immagine ISO.
  • non verrebbero eseguite la pulizia e la manutenzione complete come nel caso di un'installazione tramite un'immagine DVD.

Attenzione: nell'aggiornamento non bisogna saltare nessuna versione! Ad esempio: non aggiornare dalla 15.0 alla 15.2. Invece, dalla 15.0 è necessario aggiornare alla 15.1, e, solo dopo, dalla 15.1 alla 15.2.

Altra possibilità: Aggiornamento Offline ("non in linea"), ovvero aggiornamento tradizionale o da DVD. Per maggiori informazioni consultare la pagina aggiornamento non in linea. Questo metodo di aggiornamento è più sicuro e più versatile. A meno che non si abbiano delle buone ragioni per fare diversamente è consigliabile utilizzare il metodo di aggiornamento non in linea.


Scenari supportati

Un aggiornamento da una versione di openSUSE 32 bit a Leap non è supportato, in quanto Leap è solo a 64 bit. Se l'hardware supporta x86_64 è possibile aggiornare prima la 13.2 a 64 bit. Vedere 32-bit to 64-bit upgrade.

Con l'architettura AArch64 (ARM a 64 bit) non è supportato l'aggiornamento da Leap 15.0 a Leap 15.1. In questi sistemi si deve eseguire una nuova installazione.

Bisogna tenere presente che, in linea di principio, questo processo di aggiornamento è considerato solo "il massimo sforzo". Ciò significa che, a causa di alcuni pacchetti di terze parti e della miriade di possibili configurazioni, è possibile che alcune combinazioni causino errori al momento dell'aggiornamento.

Bisogna anche ricordare queste regole importanti:

  • bisogna effettuare una copia di sicurezza di tutti i dati importanti prima di iniziare il processo di aggiornamento.
  • è necessario aggiornare il sistema con gli ultimi aggiornamenti disponibili per il rilascio correntemente in esecuzione prima di eseguire zypper dup.
  • bisogna eseguire zypper dup soltanto per passare al suo rilascio immediatamente successivo. Saltare un rilascio, passando per esempio dalla versione 42.1 alla 15.1, non è supportato.

Nota: secondo la mail list di factory è stato testato in openQA un aggiornamento diretto da openSUSE 12.x a Tumbleweed (fino all'istantanea 1101). Attualmente (novembre 2017) il processo viene testato da 13.x e da 42.x direttamente su TW. Tuttavia, questo non significa che si dovrebbe farlo! Si potrebbe incappare in un problema sconosciuto.


Migrazione a SUSE Linux Enterprise

Se si è interessati nella migrazione da openSUSE Leap verso SUSE Linux Enterprise, seguire la nostra guida per migrare verso SUSE Linux Enterprise.

Assicurarsi che il sistema sia aggiornato

Il punto di partenza supportato è l'ultimo rilascio di openSUSE con tutti gli attuali aggiornamenti applicati. Non sono inclusi i repository del openSUSE Build Service che potresti aver aggiunto arbitrariamente. È raccomandabile prima di tutto di disattivare tutti i repository di OBS, eseguire l'aggiornamento e poi riattivali. I passaggi seguenti mostrano come aggiornare la distribuzione openSUSE ai pacchetti attuali prima di aggiornare alla prossima versione.

Nota: il consiglio di rimuovere repository aggiuntivi potrebbe essere deprecato.

Gestione dei repository aggiuntivi

Zypper dup può ora gestire meglio i repository aggiuntivi durante l'aggiornamento. La rimozione di un repository causa il problema che ogni pacchetto che è stato installato da esso tornerà a un altro repository (se trovato), o cancellato o lasciato alla vecchia versione, a seconda delle scelte dell'amministratore. Potrebbe essere meglio lasciare il repository attivo. L'esempio tipico è packman.

Tuttavia un aggiornamento del sistema può essere l'occasione perfetta per rimuovere alcuni repository, poiché troppi repository complicano la manutenzione. Ad esempio, supponiamo di avere alcuni repository di XFCE o di Plasma che erano stati attivati per ottenere le versioni più recenti (diciamo che c'era bisogno di una funzionalità, o di correggere un problema, che è stato gestita in una versione più recente): questa sarebbe l'occasione perfetta per tornare alla versione principale. Sarebbe la possibilità di prendere in considerazione la rimozione di tutti i repository HOME di cui non ci sia davvero bisogno.

Ogni repo che rimuoviamo farà sì che zypper chieda cosa fare con i pacchetti installati da loro: mantenerli o aggiornarli con il cambio del fornitore. La politica sarebbe "mantieni", se si intende aggiungere nuovamente il repository dopo l'aggiornamento del sistema, o altrimenti "aggiorna". Si potrebbe usare "--allow-vendor-change", ma ciò potrebbe avere conseguenze non intenzionali, in quanto zypper valuterà se per ogni pacchetto non sarebbe meglio ottenere una versione da "un altro" repository, tenendo in considerazione le priorità che hanno.

Quindi, si deve scegliere quale strada prendere, come amministratore ;-)

Riga di comando

1. Controllare se il repository degli aggiornamenti esiste già ed è abilitato, e aggiornare prima del passaggio alla nuova versione.

zypper repos --uri

Controllare se http://download.opensuse.org/update/leap/15.0/oss/ (per openSUSE Leap 15 o successive, sostituire 15.0 con la propria versione) esiste in uno dei valori della colonna URI, e Yes nella colonna Enabled, come nell'esempio sotto:

#  | Alias           | Name            | Enabled | Refresh | URI
---+-----------------+-----------------+---------+---------+----------------------------------------------------
1  | repo-update     | repo-update     | Yes     | Yes     | http://download.opensuse.org/update/leap/15.0/oss/

Se nella colonna Enabled c'è No, abilitarla con il comando

zypper modifyrepo --enable repo-update
dove ‘repo-update’ è il nome del repository di aggiornamento.

Se esiste ed è stato abilitato, continuare al passo 3.

2. Aggiungi il repository di aggiornamento

(Se il sistema prima del passaggio alla nuova versione è 15.0 o superiore e il il repository di aggiornamento non esiste):

zypper addrepo --check --refresh --name 'openSUSE-Leap-15.0-Update' http://download.opensuse.org/update/leap/15.0/oss/ repo-update
sostituire il 15.0 quii sopra con la verione attuale di openSUSE.

3. Spostare /var/cache in un sotto-volume separato

Nota: se il file system principale non è Btrfs o se si sta passando da una verione dalla 15.0 in avanti si può saltare questa sezione e continuare al passo 4.

/var/cache contiene una gran quantità di dati molto volatili, ad esempio la cache di zypper con i pacchetti RPM in diverse versioni per ciascun aggiornamento. Come risultato della memorizzazione di dati per lo più ridondanti ma altamente volatili, la quantità di spazio su disco occupata da un'istantanea può aumentare molto rapidamente. Per risolvere questo problema, spostare /var/cache in un sotto-volume separato:

  • Scoprire il nome del dispositivo del file system principale:
df /
  • Identificare il sotto-volume principale. Per le installazioni di openSUSE 15.1, questo è denominato con @:
btrfs subvolume list / | grep '@'
  • Se l'output di questo comando è vuoto, non c'è un sotto-volume denominato con @. In tal caso si potrebbe essere in grado di procedere con il sottovolume ID 5 utilizzato nelle versioni precedenti di openSUSE.
  • Montare il sotto-volume specifico in un punto di montaggio temporaneo:
mount /dev/<root-device> -o subvol=@ /mnt
Se non c'è una @ nel nome del sottovolume, montare invece il del sotto-volume con ID 5:
mount /dev/<root-device> -o subvolid=5 /mnt
  • /mnt/var/cache potrebbe già esistere e potrebbe essere nella stessa directory di /var/cache. Per evitare perdite di dati è necessario spostarlo:
mv /mnt/var/cache /mnt/var/cache.old
  • Creare un nuovo sotto-volume:
btrfs subvol create /mnt/var/cache
  • Se ora c'è una nuova directory /var/cache.old, spostarla nella nuova posizione:
mv /var/cache.old/* /mnt/var/cache
Se non c'è:
mv /var/cache/* /mnt/var/cache/
  • Dopo aver spostato, rimuovere (facoltativamente) /mnt/var/cache.old:
rm -rf /mnt/var/cache.old
  • Smontare il sotto-volume dal punto di montaggio temporaneo:
umount /mnt
  • Aggiungere una voce in /etc/fstab per il nuovo sotto-volume /var/cache. Si può usare un sotto-volume esistente come modello da cui copiare. Assicurarsi di non modificare l'UUID (è quello del file system principale), modificando invece il nome del sotto-volume e il suo punto di montaggio a seconda di /var/cache.
  • Montare il nuovo sotto-volume come specificato in /etc/fstab:
mount /var/cache

4. Aggiorna il sistema agli ultimi pacchetti

zypper refresh
zypper update

Per maggiori informazioni leggere Zypper Usage.

Strumento grafico

Vedere YaST Online Update.


Eseguire l'aggiornamento alla nuova versione

I seguenti passaggi mostreranno come aggiornare la tua distribuzione openSUSE al rilascio successivo (esempio: da 12.3 a 13.1). Come già accennato, qualunque repository di terze parti o di OBS può essere causa di problemi, per cui prima di procedere si raccomanda di disabilitarlo o eliminarlo.

Nota: il consiglio di rimuovere i repository aggiuntivi potrebbe essere deprecato.


Prima di iniziare

Assicurarsi di aver letto l'elenco dei bug più fastidiosi della nuova versione che ci si appresta ad installare: alcuni di questi potrebbero condizionare il processo di aggiornamento. Di solito, assieme alla segnalazione del bug viene fornita una qualche soluzione o una soluzione di ripiego, per cui tenersi pronti per eventuali problemi.

Leggere anche le note di rilascio, che elencano le modifiche e le anomalie del nuovo rilascio.

Riga di comando

Come esempio, i passi seguenti mostrano come passare alla 15.2:

  • Passa e aggiorna tutti i repository alla 15.2
    # zypper --releasever=15.2 ref
    
  • Ora eseguire il passaggio alla nuova distribuzione.
I passi qui sopra funzioneranno solo se i repository della Leap che sono definiti in /etc/zypp/repos.d/ stanno già usando la variabile $releasever. Se sono ancora fissi ad un particolare numero di versione della Leap è necessario prima modificarli. Ad esempio, supponendo che sia Leap 15.1, può essere fatto con sudo sed -i 's/15.1/${releasever}/g' /etc/zypp/repos.d/*.repo

Se si è eseguito il passaggio di cui sopra prima della data di rilascio ufficiale (ad esempio, prima del 22/05/2019 per la Leap 15.1), si potrebbe aver installato una Release Candidate (RC) oppure una versione milestone: sarà ora necessario ripetere lo zypper dup per ricevere la versione definitiva.

Icon-warning.png
Attenzione! Si consiglia vivamente di eseguire il passaggio alla versione successiva non nella modalità grafica di X-window. Pertanto si consiglia di eseguire il comando dal runlevel 3 (testo + rete) o da una console virtuale. Sfortunatamente molte volte la connessione WIFI è gestita o è disponibile solo nel runlevel 5, quindi una console di testo virtuale potrebbe essere la scelta migliore mentre si rimane connessi alla console grafica dietro le quinte. Le persone a cui si è interrotta o arrestata la sessione X durante l'aggiornamento, e quindi l'interruzione dell'aggiornamento, si sono trovate con un sistema in uno stato incoerente. Per passare al runlevel 3, vedere en:SDB:Switch_runlevel. Per rimanere nel runlevel 5, ma utilizzando una "console virtuale", digitare ctrl-alt-F1 (ad esempio).
# zypper --releasever=15.2 dup
Con il comando precedente, zypper scaricherà tutti i pacchetti richiesti e li installerà nelle heap. Per scaricare tutti i pacchetti in anticipo, utilizzare:
# zypper --releasever=15.2 dup --download-in-advance


Se si è eseguito il passaggio di cui sopra prima della data di rilascio ufficiale (ad esempio, prima del 22/05/2019 per la Leap 15.1), si potrebbe aver installato una Release Candidate (RC) oppure una versione milestone: sarà ora necessario ripetere lo zypper dup per ricevere la versione definitiva.
  • Cercare i repository di terze parti, aggiornati e compatibili con openSUSE 15.2 che utilizzavi prima — se se ne ha ancora bisogno — , e aggiungili.
Icon-warning.png
Attenzione! Da usare con cautela. L'utilizzo repository di terze parti potrebbe rendere il sistema operativo inutilizzabile oppure causarne l'instabilità.
zypper addrepo --name <name> <url> <alias>
O, se si ha a disposizione l'URL di un file .repo:
# zypper ar <url.repo>

Successivamente

Dopo il passaggio alla nuova versione è raccomandato un riavvio, così da avviare il nuovo kernel e le nuove versioni di tutti i programmi.

E: scopri e divertiti :)

Infine, di tanto in tanto si può eseguire zypper up, per assicurarsi di avere gli ultimi pacchetti disponibili dai vari repository che sono stati abilitati. YOU (Yast Online Update) risolve solo gli aggiornamenti di sicurezza dai repository ufficiali.

Test di openSUSE Leap 15.3 alfa/beta/RC

Le istruzioni di cui sopra permetteranno anche di aggiornare a una qualsiasi delle versioni candidate al rilascio di openSUSE Leap 15.3, semplicemente sostituendo la versione di rilascio pertinente (15.3). È bene ricordare ancora che gli aggiornamenti dovrebbero essere graduali (cioè 15.0, 15.1, 15.2 e solo successivamente a 15.3) e notare anche che queste versioni sono progettate per testare con alcuni pacchetti in uno stato di flusso. Gli utenti del sistema sono i tester, quindi un riscontro rapido (tramite Bugzilla) è fortemente incoraggiato.

Tenere presente che openSUSE Leap 15.3 ( 'attualmente in alfa e pianificato per il rilascio finale a luglio del 2021' ) utilizza i binari di SUSE Linux Enterprise, quindi l'aggiornamento da 15.2 a 15.3 comporta un cambiamento del fornitore da openSUSE a SUSE LLC. Consigliamo quindi agli utenti di utilizzare

# zypper --releasever=15.3 dup --allow-vendor-change

o in seguito al quale era necessario solo il cambio del fornitore.

# zypper --releasever=15.3 dup --no-allow-vendor-change --force-resolution

yast o zypper migrate dovrebbero consentire il cambio del fornitore da openSUSE a SUSE LLC senza una lista bianca esplicita.