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