Ho fatto l'upgrade da Debian Etch a Lenny...

Informatica
Logo Debian

Lenny, la nuova release stabile di Debian, "il sistema operativo universale" è stata rilasciata il 14 febbraio, e per quanto introducesse molte novità, ho cercato di tenere a freno per un po' la mia irrazionale pulsione all'aggiornamento del mio server LAMP, con la (giusta) scusa che tutto funzionava correttamente, e quando qualcosa funziona non bisogna mai metterci mano, che si rischia di romperla...
L'altro giorno ho trovato una buona scusa, e alla fine ho fatto l'aggiornamento. Impressionante: è stato totalmente indolore, ha funzionato tutto correttamente... Ok, vi spiego la procedura per l'upgrade da Etch a Lenny!

...Se funziona non lo toccare, che lo rompi!

Vi sembrerà incredibile, ma stavolta, nonostante io abbia aggiornato l'intero sistema operativo, non si è rotto nulla. Sì, è andato davvero tutto liscio, dall'inizio alla fine.
Gli unici ritocchi che sono stati necessari sono stati su apache, che includeva alcuni nuovi file di configurazione di default, che è bastato ritoccare in pochi secondi.
Giusto per essere pignoli, ricordo che la procedura qui descritta vale non solo per Debian, ma per tutte le distribuzioni derivate che usano lo stesso sistema di pacchettizzazione, come Ubuntu. Inoltre i comandi in questa pagina vanno dati in un terminale da utente root o tramite sudo (dovreste già saperlo... ma non si sa mai!). Visto che il mio serverino non ha monitor (è "headless"), io ho fatto (quasi) tutto via ssh... ;-)

Io per una mano, per mettermi al sicuro, avevo avviato con una distro live ed avevo fatto un bel backup con dump sull'altra partizione:
dump -f sistema-etch.dump /dev/hda1
Essendo pronto al peggio, non avevo compresso il backup, in modo da sbrigarmi prima anche nell'eventuale fase di ripristino, se fossero accaduti disastri.

Dopo il backup (che ripeto: è vitale!), e prima di cominciare l'aggiornamento, mi sono assicurato di aver installate le versioni più recenti dei pacchetti per il mio sistema (eventuali nuove versioni potrebbero aver risolto eventuali problemi di upgrade, non si sa mai...), con questi comandi:
aptitude update
aptitude safe-upgrade

Ok, ora andiamo a fare l'aggiornamento vero e proprio (Ubuntu lo chiama "avanzamento di versione"...boh!). La prima cosa da fare è modificare la lista dei repository da cui vengono prelevati i pacchetti, indicando i repository della nuova distribuzione, Lenny. Niente di più facile: modifichiamo il file /etc/apt/sources.list sostituendo tutte le occorrenze di "etch" con "lenny". Ecco il mio file /etc/apt/sources.list:

deb http://ftp.it.debian.org/debian/ lenny main non-free
deb-src http://ftp.it.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib

Aggiorniamo la lista dei pacchetti con un bel:
aptitude update

Ok, ora aggiorniamo il sistema di gestione dei pacchetti:
aptitude install dpkg aptitude apt

... E aggiorniamo tutto il resto del sistema:
aptitude full-upgrade

Aptitude comincia scaricando tutti i pacchetti necessari, mostrandoci sul terminale tutti i passi dell'aggiornamento. Installati i pacchetti "vitali", passa ad installare anche gli altri pacchetti "secondari", e dunque anche apache, mysql, ssh, phpmyadmin e soci... accorgendosi durante l'installazione che abbiamo modificato i file di configurazione predefiniti per questi pacchetti, avvisandoci che è disponibile una nuova versione dei file di configurazione ci chiede che vogliamo fare.
Vogliamo tenere la vecchia versione, usare la nuova o confrontarle e decidere di conseguenza? Io quasi sempre preferisco confrontarli, per vedere quali sono i nuovi default scelti dalla distribuzione, ed eventualmente applicarli ai miei file di configurazione se li trovo interessanti o utili.

Ado ogni installazione vengono riavviati i servizi interessati, e de stiamo tenendo d'occhio il terminale possiamo vedere subito se ci sono problemi o meno. Nel mio caso, apache restituiva un paio di warning, che non influenzavano il funzionamento del server, e che erano semplici da risolvere, agendo sui file di configurazione (non sto ad annoiarvi in proposito: se vi capita e cercate quei messaggi di errore su google trovate subito le risposte).

Soddisfatto che era andato tutto liscio, non vedevo l'ora di riavviare con il nuovo kernel. Ma prima di riavviare, da bravo amministratore di sistema coscienzioso (sì, sì, diamoci un po' di arie...), mi sono fatto un giro nel sistema, provando vari servizi e soprattutto ho dato un'occhiata ai miei file /etc/fstab e /boot/grub/menu.lst. Tutto a posto nel primo, dove uso i LABEL, ma nel nel secondo, misteriosamente, la mia partizione di sistema era stata impostata a /dev/sda1 invece che a /dev/hda1.
Insomma, come mi già era capitato quella volta:
http://gerlos.altervista.org/blog/2008-10-06-ricorda-etichette

Ho prontamente corretto la cosa, sostituendo il riferimento al device con il LABEL della partizione, come spiegato nella pagina indicata poco fa.
Ho finalmente riavviato, ed eccoci:
uname -a
Linux gerlos.homelinux.org 2.6.26-1-686 #1 SMP Sat Jan 10 18:29:31 UTC 2009 i586 GNU/Linux

Come? Qual era quella buona scusa per fare l'aggiornamento? Pensavo di avervi distratti a sufficienza...

Sì, sì, ve lo dico: il "nuovo" kernel 2.6.26 (nuovo per Debian stable...) supporta il montaggio di una directory locale su un'altra (mount --bind) in modalità read-only, funzione utile per varie ragioni, tra cui la messa in sicurezza dei backup: faccio fare i backup a rsnapshot (ma ne parliamo un'altra volta...) in una directory nascosta su cui ho impostato i permessi 700, e poi espongo i backup in una directory montata in sola lettura, tramite mount --bind.
L'howto originale di rsnapshot suggeriva di montare la directory internamente via nfs, ma non mi andava giù l'idea di installare ed attivare un nuovo servizio... meno roba c'è, meno roba si può rompere! :-)
Ecco che il montaggio bind read-only era una soluzione alternativa elegante e semplice! Vi avviso che ci sono alcune cose a cui far attenzione, ma ne parliamo meglio un'altra volta, ve l'ho detto.

Un'ultima considerazione. Se leggendo questa pagina vi è sembrato tutto troppo facile, non vi siete sbagliati, è veramente facile. Il segreto per non aver problemi è fare le cose con consapevolezza: non copiate e incollate i comandi da qui, prima di farlo consultate la documentazione, o almeno date un'occhiata alla pagina man di aptitude... Certo, è più facile quando si ha esperienza, più che altro perché si sa cosa aspettarsi, e non si fanno pasticci per impazienza o fretta. Ma la cosa più importante è fare sempre i backup e controllare tutto prima di riavviare il sistema.

Trackback URL for this post:

http://gerlos.altervista.org/trackback/439

commenti

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Allowed HTML tags: <a> <em> <strong> <del> <cite> <code> <img> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Linee e paragrafi vanno a capo automaticamente.
  • Insert Flickr images: [flickr-photo:id=230452326,size=s] or [flickr-photoset:id=72157594262419167,size=m].
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.

CAPTCHA
Per provare che sei un visitatore umano, rispondi a questa domanda. È per evitare l'inserimento di messaggi spam.
Image CAPTCHA
Enter the characters shown in the image without spaces, also respect upper and lower case.