Un maledetto pomeriggio da cani

Come accennato, potrebbe capitare di installare, con motivazioni più o meno valide, dei pacchetti Debian non ufficiali; questi pacchetti di solito sono preparati dai medesimi sviluppatori Debian che lavorano ai pacchetti ufficiali, quindi in genere non danno problemi, anche se il rischio che qualcosa non funzioni a dovere bisogna metterlo in conto (altrimenti sarebbero pacchetti ufficiali!). Una tale spiacevole evenienza si può illustrare attraverso lo studio del seguente ipotetico caso.

Supponiamo che un pomeriggio vi mettiate di buzzo buono alla vostra fida tastiera, per installare certi nuovi driver che sostituiscono alcuni componenti critici del sistema grafico X11, per sfruttare meglio la scheda video con chipset Mach64 di cui è dotato il vostro computer. I nuovi driver sono contenuti in certi pacchetti che vi siete procurati in rete:

xlibmesa-dri-mach64 xserver-xfree86-dri-mach64
e non esitate a prontamente installarli dopo aver fatto il login da amministratore:

# apt-get install xlibmesa-dri-mach64

# apt-get install xserver-xfree86-dri-mach64

Dopo il riavvio della macchina, però, l'amara sorpresa: il sistema X11 non parte più; tutta la grafica è completamente andata e l'unica cosa che vi rimane è la riga di comando della shell! Forse il pacchetto aveva qualcosa di sbagliato oppure forse Voi avete dimenticato di fare qualcosa di importante (a proposito, avete letto eventuale documentazione a corredo?), fatto sta che rivolete indietro il vostro GNOME/KDE. Ebbene, perbacco, siete o non siete l'amministratore? Vi accingete pertanto a cancellare per sempre dal vostro amatissimo disco codesti maledetti pacchetti:

# apt-get remove xlibmesa-dri-mach64

# apt-get remove xserver-xfree86-dri-mach64

Ma, accidenti, questo pomeriggio la sfiga deve aver fatto gli straordinari, perchè il sistema vi informa (se potesse credo che vi punterebbe il dito contro) che per disinstallare questi pacchetti occorrerà disinstallare l'intero GNOME/KDE!

Per uscire da questo pasticcio di dipendenze è utile ricorrere al vecchio dpkg, che a volte è in grado di fornire più complete informazioni. Infatti nel nostro ipotetico caso il tentativo di rimozione tramite dpkg:

# dpkg -r xlibmesa-dri-mach64
rivela l'importante dettaglio che ciò non può essere fatto perchè manca il pacchetto xlibmesa-dri della Debian stabile, evidentemente rimosso installando i pacchetti precedenti. Questa è proprio l'occasione buona per scatenare tutta la potenza di ``preferenze'' (preferences), una relativamente nuova caratteristica di APT. Se non ci ricordiamo la pagina di manuale, possiamo farci dare dei suggerimenti dal sistema:

$ apropos preferences

apt_preferences (5) - Preference control file for APT

e digitare quindi:

$ man apt_preferences
Questa nuova caratteristica di APT permette di degradare alla versione stabile di Debian dei singoli pacchetti. In sintesi, per risolvere il nostro problema di dipendenze occorrerà creare da root il file /etc/apt/preferences scrivendoci dentro:

Package: xlibmesa-dri

Pin: release a=stable

Priority: 1001

e salvare il file col nome indicato. A questo punto il comando:

# apt-get install xlibmesa-dri
avrà successo e forzerà (dato l'elevato 1001 di priorità) ad installare il componente grafico xlibmesa degradando a cascata tutto il sistema grafico X11 alla versione della distribuzione stabile e rimuovendo i pacchetti ``alieni'' xlibmesa-dri-mach64 ed xserver-xfree86-dri-mach64, ripristinando in tal modo lo stato originale. Da tutto ciò si evince che fareste bene ad evitare i pacchetti non ufficiali se non avete ottime ragioni, se non avete intenzione di fronteggiare complicati conflitti di dipendenze, se non avete sufficiente dimestichezza con il sistema, se non amate gli imprevisti.

Mauro Darida 2006-07-25