Upgrade di versione come mamma Debian Insegna

Ho sempre odiato infatti i post fotocopia che in periodo di rilascio di una nuova versione di qualsiasi distribuzione, iniziano a proliferare nei vari aggregatori, tutti a dire sempre la stessa cosa.

Oggi però stavo facendo l’upgrade della mia debian lenny a squeeze, perchè ieri ho mastruzzato un pò troppo con i vari repository (pinning di merda) e quindi il pc era un troiaio allucinante.

Parlando su Jabber con Bl@ster però mi sono reso conto di una cosa:

IO: Scommetto che quando fai l'upgrade dai dist-upgrade è basta
LUI: claro que si!
IO: Claro que si un cazzo, poi ti farò leggere come si fa un upgrade in maniera pulita

Mi sono reso conto come probabilmente in pochissimi sanno che dare apt-get dist-upgrade non è la maniera più "canonica" per effettuare un upgrade di versione. Ed ecco quindi che attingo alla documentazione che abbiamo in ufficio per esporre come effettuare un upgrade secondo documentazione Debian.

Sia chiaro, dare solo dist-upgrade NON è sbagliato, ma è giusto sapere che la distribuzione madre certifica un metodo diverso, l’importante è dare la scelta, poi è l’utente a decidere.

I preparativi

Come già sappiamo è bene partire da un sistema pulito ed aggiornato, quindi leviamo dal nostro sources.list eventuali repository esterni e teniamo solo quelli principali della distribuzione e poi diamo

~# apt-get update && apt-get upgrade

fatto questo lanciamo il comando aptitude senza niente per aprire il menu interattivo e digitiamo "g" per verificare che non ci siano eventuali operazioni in sospeso del gestore dei pacchetti.

Se cosi fosse cerchiamo di farle completare e poi da riga di comando verifichiamo che non ci siano pacchetti in stato "sospeso" con:

:~# dpkg --get-selections | grep hold

Verifica dei repository

Ricontrolliamo il file sources.list per verificare che non abbiamo in uso repository che forniscono backports, se cosi fosse possiamo consultare questa pagina, per sapere come comportarci prima di procedere all’avanzamento di versione. (E’ la pagina che fa riferimento a lenny ma è possibile trovare la documentaizone anche per le altre versioni.)

Adesso dobbiamo verificare quali pacchetti sono marcati con stato "auto", questi pacchetti sono stati installati come dipendenze e spesso durante l’aggiornamento vengono rimossi, per evitare ciò dobbiamo smarcarli.

:~# aptitude search 'i~M'

Se i pacchetti sono pochi ci va bene, nelle installazioni desktop questa lista in genere è quasi infinita, pertanto possiamo procedere a smarcarli con il seguente comando:

:~#  aptitude unmarkauto `aptitude search 'i~M'|awk {'print $3}'`

in questo modo in maniera automatica otterremo lo stesso risultato. A questo punto non resta che cambiare tutte le voci "lenny" in "squeeze" dentro sources.list, io consiglio sempre di usare i nomi delle distribuzioni al posto degli archivi (stable, unstable, ecc…) in quanto l’aggiornamento non lo si fa subito dopo che viene annunciata la nuova relase (non io almeno), è sempre meglio aspettare un pò per dare modo alla distribuzione di diffondersi e di avere risolti eventuali bug nascosti.

Il log è tuo amico

Io consiglio sempre di registrare tutto quello che si fa prima di proceder,e in modo che se durante l’aggiornamento succede un disastro possiamo risalire il log e capirne la causa, questo lo si fa lanciando:

:~# script -t 2>~/upgrade-squeeze.time -a ~/upgrade-squeeze.script

finito l’upgrade possiamo digitare "exit" e la registrazione viene interrotta.

Parte l’upgrade – Aggiornamento degli indici

Adesso possiamo iniziare con l’upgrade, diamo

:~# apt-get update

per aggiornare la lista dei pacchetti disponibili. Se abbiamo eventuali problemi di spazio su disco consultiamo questa pagina (anche questa è per lenny ma vale quanto detto sopra) per sapere come comportarci.

Se riceviamo alert su un eventuale chiave mancante non preoccupiamoci, non ci bloccherà l’operazione, questo warning verrà risolto più in la durante l’upgrade.

Parte l’upgrade – Aggiornamento del gestore

Adesso è il turno dei gestori dei pacchetti, dobbiamo aggiornare apt ed aptitude, la cosa simpatica che che uno esclude l’altro, nel senso che apt tende a rimuovere aptitude e viceversa, per aggiornarli infatti dobbiamo procedere cosi:

:~# apt-get install aptitude

:~# aptitude install apt

Cosi facendo li aggiorneremo entrambi correttamente.

Parte l’upgrade – Hey aptitude sei su Squeeze!!

Lanciamo:

:~# aptitude search "?false"

in modo da fargli capire che da adesso in poi lavorerà su squeeze e non più su lenny.

Parte l’upgrade – Aggiornamento senza dipendenze

Prima di dare il dist-upgrade, è consigliabile dare:

:~# aptitude upgrade

in modo da aggiornare prima tutti i pacchetti che non richiedono dipendenze aggiuntive, cosi evitiamo eventuali conflitti. Questa è anche la fase più critica, diamo quindi un attenzione particolare a ciò che scorre sullo schermo, a me ad esempio aggiornando server da etch a lenny con schede di rete della famiglia "broadcom", mi compare l’avviso che il firmware di queste schede (firmware-bnx2) è passato sotto il ramo non-free e quindi di default non viene installato (ma solo rimosso!!!), dovremo quindi installarlo alla fine dell’aggiornamento prima di riavviare.

Inoltre con questa procedura il sistema controllerà tutti i file di configurazione presenti notificando quali di questi sono stati aggiornati, personalmente quando vedo che si parla di file di configurazione che IO ho modificato rispondo "N" per tenere la versione correntemente installata, e poi a fine upgrade faccio un diff per vedere cosa cambia tra i due.

Parte l’upgrade – Installazioni con server X

Se questa procedura la state usando per installazioni DESKTOP, quindi con un server X installato, vi consiglio di controllare prima di procedere, che il pacchetto libfam0c102 sia installato, in caso contrario installatelo.

L’upgrade finale!

Adesso è il turno del dist-upgrade, che effettuerà l’upgrade finale di tutto ciò che rimane.

:~# aptitude dist-upgrade

alla fine dell’aggiornamento io do sempre un

:~# aptitude -f install

per completare l’installazione di qualche pacchetto eventualmente corrotto.

Gli ultimi ritocchi

L’upgrade è finito, adesso bisogna controllare che il nuovo kernel non sia stato installato come "auto":

:~# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)

se vedete che aptitude scorre senza dare errori o qualsiasi tipo di risultato siamo a posto.

Ricordiamoci prima del riavvio finale di installare eventuali pacchetti che hanno cambiato ramo (vedi l’esempio del firmware broadcom).

Reboot!

Effettuate quindi il reboot del sistema e godetevi la vostra distribuzione fresca fresca di aggiornamento.


Altri articoli che potrebbero interessarti

Nuova versione in arrivo per Cairo Dock Dopo circa un mese di lavoro, il team Cairo dock è quasi pronto per rilasciare una nuova release della...
Barcollo ma non mollo… Chi segue il mio blog da tempo sicuramente ne avrà avuto il sospetto qualche volta che fosse solo questione...
Come rimediare al bug di sicurezza in openssl su Debian ed Ubuntu Come già avrete appreso da diverse fonti, è stato rilevato un bug nel pacchetto openssl su debian (e...
SimplyMEPIS 7.0 A natale fioccano i regali e come ogni anno si assite ad un susseguirsi di unove release di vari software... in...
Ubuntu Intrepid è arrivata alla beta Mi è appena arrivata la mail di Steve Langasek che annuncia il rilascio della prima Beta Release di...

About the Author

M0rF3uS al secolo Alex è un ggiovine 25enne appassionato di informatica e linux. Lavora come Network and System Administrator e nel tempo libero gioca un pò con la sua fotocamera (Canon EOS 1000D) riuscendo a volte, per sbaglio, a fare qualche scatto decente. Completano il corredo, degli hobbies "vorrei ma non posso" ossia l'astronomia e l'astronautica....si è uno di quelli che da grande vorrebbe fare l'astronauta (povero coglione vero?).