SDB:Aggiornamento non in linea

(Reindirizzamento da SDB:Offline upgrade)
Questa guida spiega come effettuare un aggiornamento della distribuzione non in linea, per openSUSE.
Provato su openSUSE Articoli consigliati Articoli correlati
Icon-checked.png

Icon-manual.png Icon-help.png
Icon-warning.png
Attenzione! ···work in progress···

Riassunto

Lo scopo di questa pagina è di descrivere il metodo tradizionale per aggiornare il sistema ad una nuova versione, ovvero il metodo non in linea. In sostanza consiste nell'avviare il computer dal DVD di installazione e selezionare upgrade invece di install (aggiorna invece di installa, se si sceglie l'italiano come lingua di installazione, vedi più sotto). È più sicuro e versatile che l'aggiornamento a caldo del sistema (con zypper dup), infatti, dato che il sistema durante l'aggiornamento viene tenuto non in linea (offline), l'avanzamento di versione viene fatto da un piccolo sistema live, eseguito direttamente dal DVD. Non ci sono servizi da fermare e poi avviare di nuovo, né problemi legati alla sostituzione di librerie importanti mentre sono usate dal sistema. Inevitabilmente, il sistema non sarà disponibile per un po' di tempo, forse più a lungo che con un aggiornamento a caldo del sistema.

Questo procedura è disponibile da tempi "remoti", come minimo dalla versione 5.2; per questo è anche nota come "aggiornamento tradizionale".

Come inconveniente, dato che il DVD non contiene tutti i pacchetti disponibili, è assai probabile che alcuni pacchetti presenti nella propria installazione non possano essere aggiornati durante la procedura, e li si dovrà sistemare in seguito.


Perché usare l'aggiornamento del sistema

Non c'è accordo se sia meglio un aggiornamento del sistema o una nuova installazione.

In favore dell'installazione ex novo si è soliti affermare che con questa alternativa non verranno lasciate nel sistema vecchie versioni di librerie non più utilizzate, configurazioni non più funzionanti, etc, inconvenienti che si possono verificare con l'aggiornamento del sistema. Inoltre gran parte dei dati sono archiviati in '/home', che, se non viene formattata (perché montata in una partizione diversa da '/', come ci si aspetterebbe di solito), resta inalterata durante una nuova installazione. Inoltre il processo è di solito più veloce e meno problematico.

Tuttavia ci sono altri dati che invece vanno perduti, come ad esempio i database di mysql, l'archivio email di imap, le configurazioni del sistema, come per postfix, samba, o hylafax, i file dei server come i file web di apache, che rendono l'aggiornamento del sistema un'alternativa interessante e che può effettivamente far risparmiare tempo in alcuni scenari. Configurare a dovere un sistema adibito a server può richiedere settimane.

Scenari supportati

Come nel caso dell'aggiornamento a caldo, la riuscita delle procedure qui descritte non è assicurata: probabilmente funzionerà, ma potrebbe anche fallire. Prima di intraprendere le operazioni è fortemente raccomandato un backup completo. Nel caso l'aggiornamento non vada a buon fine, potrai così ripristinare e riprovare, modificando ciò che sarà necessario per evitare il problema precedente, oppure potrai procedere ad una installazione da zero, o tentare un aggiornamento a caldo del sistema.

  • Supporto ufficiale: dovrebbe essere possibile aggiornare tra due versioni che sono correntemente supportate (o lo erano al momento di fare l'avanzamento di versione), per esempio dalla 11.3 alla 12.1. Questo in via ufficiosa, se vuoi qualcosa di ufficiale, prova a chiedere nel forum di openSUSE.

È possibile che un salto di 3 o 4 versioni funzioni, ma non è garantito. Si può comunque provare: basta fare un backup completo, mettersi comodi e procedere.

  • 32 --> 64: è stato descritto come alcuni abbiano usato questa procedura per aggiornare con successo da un sistema operativo per architettura a 32 bit a uno per architettura a 64 bit. Certamente una procedura non in linea ha più possibilità di riuscire che una procedura online, ma va sottolineato che questo scenario non è supportato. Da provare solo per chi è esperto.

Prepararsi per l'aggiornamento

Il punto di partenza supportato è un rilascio di openSUSE con tutti gli aggiornamenti correnti installati. Per sapere come fare si veda , per esempio, la pagina relativa all'aggiornamento a caldo del sistema.

Leggere la pagine delle en:openSUSE:Release_Notes note di rilascio per la versione obiettivo, nonché per le versioni intermedie nel caso in cui si vogliano "saltare" una o più versioni. Per l'esempio in questione: 11.4 e 12.1

Leggere la pagina sui bug più rilevanti per la versione obiettivo e quelle intermedie: en:openSUSE:Most_annoying_bugs_11.4 11.4 e en:openSUSE:Most_annoying_bugs_12.1 12.1

Scaricare l'immagine del DVD della versione obiettivo, verificarne la somma di controllo, scriverla su un supporto e infine verificare anche il supporto masterizzato (opzione "Check installation media" all'avvio del computer dal DVD, o "Verifica del supporto di installazione" se è stata selezionata la lingua italiana da F2 Language nel menu in basso). Il sistema nel DVD deve avere la stessa architettura della versione installata nel computer mentre si aggiorna. Non è possibile usare i CD live; si possono usare i repository online come sorgenti, ma non sempre funziona, o non completamente.

Assicurarsi che in tutte le partizioni di sistema ci sia sufficiente spazio libero. Se il processo di aggiornamento non lo controllerà la mancanza di spazio manderà in crash il processo e renderà inservibile il sistema operativo da aggiornare, ma anche quello nuovo, ovviamente, non sarà disponibile.

Si può però pensare di installare ex novo in una piccola partizione, così da provare la distribuzione obiettivo col proprio hardware; in tal modo si potranno identificare eventuali problemi e risolverli prima di aggiornare effettivamente, confrontando in seguito le configurazioni problematiche. Come effetto secondario si ottiene un utile sistema di salvataggio, oppure vi si può installare la versione factory e poi aggiornare la partizione principale (solo per esperti).

Fare un backup completo. Qualsiasi procedura di aggiornamento può non andare a buon fine per qualche motivo, rendendo il sistema impossibile da avviare o da eseguire. Non sempre è possibile ripararlo e in ogni caso è sempre meglio avere un'ancora di salvataggio. In caso di problemi gravi si può sempre riprovare (dopo aver ripristinato dalla copia di riserva) tenendo conto di quanto imparato dal precedente fallimento, oppure decidere per una installazione da zero, ma con la consapevolezza di non aver perso alcun dato.

Fare un dump dei database, per cui, nel caso la loro migrazione fallisca, li si potrà ricreare da queste "copie".

Arrestare i servizi di posta. Assicurarsi di non avere email in entrata o in uscita nella coda di postfix.

È inoltre possibile aggiornare una vecchia versione attualmente non più supportata di openSUSE, ad una versione più recente, indipendentemente che sia supportata oppure no. Più ampio è il salto tre le due versioni, maggiore è la probabilità di fallire nell'aggiornamento. Si può comunque aggiornare passando attraverso vari stadi intermedi, con il fine di raggiungere alla versione attuale, o a quella scelta come obiettivo. Ma non si potranno segnalare bug eventualmente intercorsi in quei passaggi non più supportati, dato che si tratta di "scenari non supportati".


Eseguire l'aggiornamento

Esempio ricavato da un aggiornamento dalla versione 11.4 alla 12.1.

  1. Avvia da DVD. Avviato il DVD verrà presentata la "schermata di benvenuto" di openSUSE. A questo punto conviene dapprima selezionare la lingua italiana dal menu "F2 Language" (con tasto F2 o usando Tab per spostarsi tra i menu, frecce per navigare i sotto-menu, Invio per confermare/selezionare), oppure potrai farlo in seguito. Seleziona quindi Installazione ("Installation" con interfaccia in inglese). Nella schermata Welcome/Benvenuti scegli la lingua per l'installazione e per la tastiera, se non sono entrambe su "italiano". Clic su Avanti/Next. (Fig. 1)
  2. Nella schermata successiva (Modalità di installazione) seleziona Aggiorna un sistema esistente. (Fig. 2)
  3. Verranno ora rilevate le partizioni radice (o di "root") esistenti, il che potrebbe richiedere un po' di tempo, dopo di ché verrà mostrata la schermata Seleziona per l'aggiornamento. Dovrai ora scegliere la partizione che vuoi sia aggiornata, nel caso di esempio usato per questa guida, la partizione della 11.4. (Fig. 3)
    1. In alcuni casi, come cercando di aggiornare un sistema a 32 bit da openSUSE 11.3 a 12.1, potrebbe non venir rilevata alcuna partizione come aggiornabile, per cui dovrai spuntare il riquadro Mostra tutte le partizioni. Probabilmente YaST si aspetta di trovare un'architettura i586, ma la 11.3 è indicata come i386. (Fig. 3X)
    2. Se il sistema installato è a 32 bit, mentre il DVD è per architetture a 64 bit, la partizione non verrà riconosciuta. Selezionando il riquadro Mostra tutte le partizioni quest'ultima verrà visualizzata, e, se viene selezionata verrai avvisato che stai aggiornando un'installazione con un'architettura diversa. Si tratta di un'operazione problematica e non supportata.
    3. A questo punto (dopo aver selezionato la partizione da aggiornare), se hai una configurazione distribuita su più partizioni (/usr, /var, /tmp, etc), verifica che siano tutte montate e che ci sia spazio libero su ciascuna di esse. Se, per esempio, /usr non fosse montata, tutto il contenuto destinata a questa partizione finirebbe invece nella partizione radice (la "root") e probabilmente la riempirebbe completamente ma lo spazio di quest'ultima potrebbe comunque non essere sufficiente. Le console testuali sono raggiungibili digitando le combinazioni ctrl-alt-f1...f10: alcune di queste sono log, ma di solito due o tre mettono a disposizione una richiesta di accesso (o prompt) alla bash, dopo aver premuto Invio, in cui si ha a disposizione un limitato numero di comandi. Un possibile rimedio sarà allora di montare manualmente le partizioni mancanti nei percorsi in cui il sistema di aggiornamento si aspetta di trovarle (al di sotto della partizione radice da aggiornare).
  4. Si passa ora alla schermata Repository usati in precedenza: tutti i repository sono disabilitati, e fanno riferimento alla "vecchia" distribuzione. Si possono allora modificare e abilitare i repository necessari. In teoria, sarebbero da attivare solo il repository oss e quello non-oss, dato che tutto ciò che risulta installato in quel momento ma non disponibile nel DVD non verrà aggiornato e resterà alla versione della vecchia distribuzione. Se si attivano repo aggiuntivi ovviamente i pacchetti dovranno essere scaricati da internet, converrà probabilmente, se la rete non è veloce, abilitare soltanto il repo packman, aggiornando il resto manualmente in seguito. Probabilmente conviene non avere numerosi repository abilitati: le cose potrebbero complicarsi di molto. (Fig. 4)
  5. Se sono stati attivati dei repository si potrebbe ricevere il messaggio che La rete non è configurata, con l'invito a configurarla. In tal caso vai alla finestra della Configurazione di rete in cui potrai applicare le necessarie impostazioni. (Fig 6)
  6. Si giunge quindi alla schermata Impostazioni dell'installazione, fase centrale del processo di aggiornamento. Il centro di configurazione ha 7 sezioni (Fig. 8):
    • Sistema
    • Supporti di installazione
    • Opzioni di aggiornamento
    • Pacchetti
    • Copia di ripristino (Backup)
    • Lingua
    • Mappatura della tastiera

Da qui è possibile modificare molte impostazioni, ma non tutte: si tenga presente che, quando si aggiorna, il sistema è già configurato (o comunque lo era). Se si commette qualche errore, si può annullare la modifica dal pulsante Modifica... in basso. Quando sei soddisfatto delle modifiche, fai clic su Aggiorna

Sistema

Non richiede in genere interventi, dato che raccoglie l'hardware rilevato nel computer; se necessario si possono comunque apportare alcune modifiche.

Supporto di installazione

Riporta il DVD di installazione.

Opzioni di aggiornamento

Si può scegliere tra effettuare un aggiornamento basato sui modelli (pattern) selezionati (è possibile modificarli), oppure basato soltanto sui pacchetti attualmente installati. Con la seconda opzione si ottiene un sistema molto vicino a quello originale prima dell'aggiornamento, mentre la seconda opzione è più vicina a quello che si otterrebbe con un sistema installato ex novo. Quest'ultima è l'impostazione predefinita e probabilmente la scelta migliore.

Pacchetti

Questa sezione è importante in quanto qui bisogna risolvere i possibili conflitti che possono tra i pacchetti installati e gli aggiornamenti disponibili per ciascuno di essi. Il sistema cerca di risolverli tutti automaticamente, ma non sempre è possibile. Alcuni conflitti sono causati dal fatto di aver abilitato nel sistema di partenza vari repository che ora però non sono più disponibili, altri perché con l'avanzamento di versione sono cambiati i pacchetti che fornivano una certa funzionalità. È necessario dunque procedere con cautela e a seconda dei casi. Nell'esempio riportato, ad esempio, la soluzione migliore sembrerebbe rimuovere i pacchetti in conflitto e dire al gestore dei pacchetti di provare nuovamente con le nuove azioni applicate. Una volta risolti i conflitti (nell'esempio, soltanto due), potrai selezionare o deselezionare pacchetti secondo le tue esigenze. Naturalmente aggiungendo pacchetti qui si allungherà il processo di aggiornamento, per cui potresti volerli installare in seguito, con il sistema in esecuzione, magari in secondo piano mentre ti dedichi ad altre attività.

Copia di ripristino

Meglio lasciare le impostazioni così come sono.

  • Crea copia di ripristino dei file modificati. I file sono archiviati in /var/adm/backup/*, ma molti di questi potrebbero essere non particolarmente utili per un effettivo ripristino.
  • Crea copia di ripristino completa di /etc/sysconfig/. Questo tipo di copia di ripristino potrebbe essere decisamente utile. I file sono salvati negli stessi percorsi di sopra.

Lingua

Da qui si può selezionare una lingua principale diversa o specificare ulteriori lingue, assieme alla tastiera appropriata.

Mappatura della tastiera

Da qui si può modificare la mappatura di sistema della tastiera.


Esecuzione dell'aggiornamento

Viene richiesto per l'ultima volta se si vuole proseguire nell'aggiornamento o annullare. Se si è scelto di proseguire verrà mostrata la stessa finestra di avanzamento visualizzata per una nuova installazione con le schede della presentazione e dei dettagli di installazione. Si dovrà attendere, dato che il processo è molto più lento che per una nuova installazione, soprattutto con macchine poco potenti (in certi casi potrebbe richiedere alcune ore).

Talvolta si potrebbe notare che l'installazione di alcuni pacchetti fallisce (per esempio dal repository di Packman, come nell'esempio), magari perché l'indirizzo era sbagliato. Comunque il processo prosegue e a questo stadio non c'è modo di intervenire.

Alla fine il processo termina e il computer si riavvia (o viene riavviato, come nell'esempio).


Dopo l'aggiornamento

Ci sono ancora alcune operazioni da effettuare dopo che l'aggiornamento del sistema è "formalmente" terminato.

Pacchetti non aggiornati

Molto probabilmente il DVD non fornirà alcuni dei pacchetti presenti nel sistema installato, per cui devono essere scaricati dal repository OSS o da quello non-OSS di openSUSE, oppure da altri repository. Quindi una volta terminato questo aggiornamento di sistema non in linea potrebbe essere necessario effettuare una serie di aggiornamenti di pacchetti in linea.

Questo inconveniente era legato al Bug #693230 , ora risolto: il sistema per l'aggiornamento non in linea, presente nel DVD, dovrebbe essere in grado di scaricare automaticamente qualsiasi pacchetto non incluso nel DVD stesso (e di scaricare soltanto quei pacchetti).

Attenzione: La procedura descritta nella parte sottostante di questa sezione non dovrebbe più essere strettamente necessaria (vedi Info qui sopra), soprattutto se durante l'installazione era presente una connessione a internet. In ogni caso potrebbe essere una lettura proficua, in particolare se ci sono repository da sistemare e pacchetti con cambio di fornitore da installare o zypper dup <opzioni> da lanciare, in alternativa.

Per la corretta riuscita della procedura qui sotto (facoltativa) assicurati prima che l'elenco dei repository attivi sia corretto per il nuovo sistema. Concentrati per ora su OSS, nonOSS, ed eventualmente packman:

Possibili azioni:

  • Eseguire zypper dup. Solitamente da scartare in quanto è potenzialmente rischioso per l'integrità del sistema e in questo caso inutile, dato che verrebbero nuovamente scaricati tutti quanti i pacchetti.
  • Eseguire zypper up. Più sicuro: verranno aggiornati quei pacchetti dei quali esiste una versione in linea più aggiornata (senza cambio di fornitore).
  • Eseguire una ricerca nel database rpm e aggiornare manualmente ciò che è necessario. Per esempio, puoi lanciare il comando:
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

oppure

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

La prima versione genera un elenco con blocchi di testo separati da doppi punti, per poterlo importare in un foglio di calcolo e processarlo. La seconda versione genera un elenco di testi separati da tabulazioni, per ispezionarlo a vista.

In entrambi i casi è un elenco, ordinato per data di installazione, di tutti i pacchetti installati nel sistema, con l'aggiunta di svariati campi che permettono di capire se un pacchetto appartenga al vecchio sistema o a quello aggiornato (oppure se è dell'architettura sbagliata, nel caso di un aggiornamento da 32 a 64 bit). A questo punto è soltanto questione di aggiornare ciascun pacchetto con zypper up nome_pacchetto, o avviare il gestore pacchetti di YaST e selezionare come da aggiornare ciascuno dei pacchetti necessari, uno alla volta.

  • Avvia YaST - Gestione pacchetti (per la versione in Qt) e ispeziona a vista l'elenco dei pacchetti: quelli in rosso sono i candidati da controllare con attenzione. Potrebbero essere una versione vecchia, o essere forniti da un repository che non è abilitato. Valuta ogni caso accuratamente.

Riavvia e controlla che tutto funzioni correttamente. Se non è così, consulta la seguente sotto-sezione.

File di configurazione obsoleti

Dopo un aggiornamento di sistema ci sono molti file di configurazione che sono cambiati e altrettanti che sono immutati. Molti di questi, di entrambi i tipi, necessitano di un controllo. Lo script rcrpmconfigcheck genera un file con l'elenco dei file di configurazione che devi revisionare. Esempio:

# rcrpmconfigcheck
Searching for unresolved configuration files            done
Please check the following files (see /var/adm/rpmconfigcheck):
  /etc/apparmor.d/usr.lib.dovecot.imap.rpmnew
  /etc/checkinstallrc.rpmsave

È un compito noioso ma che va fatto. Possono verificarsi le due situazioni qui sotto illustrate:

  1. Il file di configurazione vecchio resta in servizio, mentre il nuovo viene installato da rpm con nome *.rpmnew
  2. Il file di configurazione vecchio viene salvato come *.rpmsave, mentre il nuovo è quello in servizio.

Si tratterà allora di modificare il vecchio file di configurazione e importare quello che serve dal nuovo (caso 1), oppure viceversa (caso 2); o di fare quant'altro necessario, a discrezione dell'amministratore.

Un ottimo strumento visuale per questo compito è meld. Si possono modificare duo (o tre) file contemporaneamente, visualizzare le differenze tra ciascuno di essi e copiare blocchi di testo da un file all'altro (con i 2/3 file affiancati e sempre sincronizzati).

Infine

Infine esegui zypper patch o lancia YaST - Aggiornamenti in linea. Dovrebbe essere tutto.


Ulteriori informazioni


Elenco figure

Alcune schermate provenienti da un aggiornamento da openSUSE 11.3 a 11.4, con un sistema guest su vmware player.