Aggiornare Debian da Lenny a Squeeze: la via lenta, ma sicura

Se si cerca su google come aggiornare Debian dalla versione stable alla versione testing, si troveranno decine e decine di guide che affermano che sono sufficienti quattro passaggi: modificare il file sources.list, aggiornare la lista dei pacchetti, aggiornare i pacchetti relativi ad aptitude e dpkg, quindi dare il dist-upgrade. Ci avete provato? Se l’avete fatto con buona probabilità vi sarete trovati di fronte un sistema inutilizzabile.

D’altronde, se fosse così semplice, perchè la guida ufficiale debian nelle note di rilascio di squeeze è mooooolto più lunga e complessa?

La guida ufficiale voi la potete trovare qui. Io adesso cercherò di fare qui un sunto per voi, stando attento a non tralasciare nulla di troppo importante.

Innanzitutto cominciate facendo un bel backup di tutti i vostri dati. È vero che questa guida è ufficiale e funziona, tuttavia, come nella guida sta scritto in più parti, la riuscita al 100% è garantita solo partendo da un sistema lenny puro. Quindi se non volete rischiare fate un backup.

Ok è vero, ho mentito dicendo che questa è la via sicura… però è vero che è più sicura di tutte le altre.

Adesso, per prima cosa, dovete cercare di eliminare tutti i software di terze parti che avete installato: via virtualbox, via google chrome, via opera, via tor e via tutto ciò che è stato installato da repository che non siano quelli debian. Non vi preoccupate di fare questa operazione, tanto state semplicemente disinstallando il programma e non rimuovendo le vostre impostazioni personali che rimarranno felicemente salvate nella vostra home directory. Una volta che li avete eliminati aprite con un editor di testo il file /etc/apt/sources.list e commentate tutte le righe di repository tranne il repository principale e il repository updates (commentate anche volatile, questo repository non esiste più per squeeze). Fate attenzione al fatto che alcuni programmi, ad esempio google chrome e opera, utilizzano dei repository che non vengono elencati nel canonico sources.list, quindi entrate nella directory /etc/apt/sources.list.d ed eliminate tutti i file ivi contenuti.

Già che ci siete modificate nel file /etc/apt/sources.list tutte le occorrenze delle parole stable o lenny in testing o squeeze.

Se avete installato alcuni pacchetti dai repostory di backports.org dovrete a questo punto fare un’ulteriore passo. Aprite con un editor di testo il file /etc/apt/preferences (se non esiste il file verrà creato, e se esiste vi consiglio di sovrascrivere tutto quello che ci trovate dentro) e scriveteci dentro le seguenti righe:

Package: *
Pin: release a=testing
Pin-Priority: 1001

In questo modo apt installerà tutti i pacchetti presenti in testing anche se ciò dovesse significare fare un downgrade rispetto ad alcuni pacchetti installati da backports.org (dato che alcuni di quei pacchetti sono stati presi dal ramo unstable).

Bene. Adesso premete CTRL+ALT+F2 e loggatevi nel terminale testuale che vi apparira. Date il seguente comando:

sudo telinit 1

In questo modo passerete al runlevel 1 che è quello con la minor quantità di servizi in funzione. Infatti, se eseguite l’aggiornamento da un runlevel differente (quindi con server grafico in funzione) può capitare che durante l’aggiornamento X venga interrotto e poi riavviato… ciò è sufficiente a consegnarvi un sistema inutilizzabile.

Ora potete aggiornare la lista dei pacchetti col seguente comando:

sudo apt-get update

Siamo pronti per effettuare l’aggiornamento. Effettuiamo prima un aggiornamento parziale, ossia aggiorniamo tutti quei pacchetti che non richiedono la rimozione di altri pacchetti già installati sulla macchina.

sudo apt-get upgrade

Finita quest’operazione è il momento di aggiornare il kernel e udev. Per aggiornare il kernel con quello più recente presente nei repository testing dovrete installare il metapacchetto linux-image-2.6-686:

sudo apt-get install linux-image-2.6-686

EDIT: se state eseguendo l’avanzamento su architettura amd64, il pacchetto che dovrete installare è linux-image-2.6-amd64. La riuscita, anche su architettura amd64, mi è stata confermata da un utente che mi aveva contattato per email chiedendo chiarimenti.

Durante l’installazione del nuovo kernel vi verrà chiesto di modificare gli identificativi dei dischi nei file di sistema. Ditegli di sì e lo farà lui in automatico. Tuttavia non modificherà, o almeno nel mio caso non l’ha fatto, i file di grub. Considerate che adesso i dischi verranno visto come /dev/sda e non più come /dev/hdc.

Quando finisce l’installazione del kernel sulla guida ufficiale c’è scritto di installare udev. Nel mio caso però l’operazione è stata segnalata dal sistema stesso come altamente rischiosa perchè il nuovo udev non funziona col kernel che stiamo utilizzando. Per questo motivo vi consiglio di modificare il menu.lst di grub e di riavviare utilizzando il nuovo kernel (io ho fatto così e non ho avuto problemi). Attenzione: riavviate in runlevel 1, per farlo aggiungete alla riga del kernel la scritta “single”. Ricordatevi anche di sostituire hdcx con sdax.

Una volta riavviato installate udev col seguente comando:

sudo apt-get install udev

Fatto? Bene… incrociate le dita perchè adesso dovete dare il comando che effettivamente aggiornerà il vostro intero sistema.

sudo apt-get dist-upgrade

dist-upgrade, al contrario del semplice upgrade, si occupa di risolvere le dipendenze eliminando i vecchi pacchetti e installando quelli nuovi.

Alla fine di tutta la procedura, che durerà un bel po’, riavviate a gustatevi l’aggiornatissimo Debian 6.0.