Debian pinning – installare versioni di uno specifico repository
Sono solito utilizzare debian testing (Jessie ora che scrivo) ma a volte capita che i pacchetti presento su una particolare versione siano buggati.
In questi giorni ho avuto problemi con mysql workbench, che nei repository jessie mi veniva proposto nella versione 6.1.7+dfsg-1 0, versione con alcuni bug noti (l’editing delle colonne delle tabelle non è funzionante). Ho quindi pensato di provare versioni alternative, magari quella presente nel ramo stable, o unstable.
Per fare questa cosa si utilizza il pinning, il sistema di apt per gestire le priorità dei pacchetti. Per prima cosa sistemiamo il file /etc/apt/sources.list aggiungendo tutti i rami:
deb http://ftp.it.debian.org/debian/ testing main non-free contrib deb-src http://ftp.it.debian.org/debian/ testing main non-free contrib deb http://ftp.it.debian.org/debian/ unstable main non-free contrib deb-src http://ftp.it.debian.org/debian/ unstable main non-free contrib deb http://ftp.it.debian.org/debian/ stable main non-free contrib deb-src http://ftp.it.debian.org/debian/ stable main non-free contrib
poi editiamo (o creiamo se non è presente) il file /etc/apt/preferences:
Package: * Pin: release a=stable Pin-Priority: 650 Package: * Pin: release a=testing Pin-Priority: 700 Package: * Pin: release a=unstable Pin-Priority: 600
è facile capire le priorità. Apt utilizzerà prima i pacchetti testing, poi stable e infine unstable. Dopo aver fatto queste modifiche si possono vedere le varie versioni proposte del pacchetto necessario facendo:
apt-cache policy mysql-workbench
che mostrerà qualcosa del genere:
mysql-workbench: Installato: 5.2.40+dfsg-2 Candidato: 6.1.7+dfsg-1 Tabella versione: 6.2.3+dfsg-1 0 600 http://ftp.it.debian.org/debian/ unstable/main amd64 Packages 6.1.7+dfsg-1 0 700 http://ftp.it.debian.org/debian/ testing/main amd64 Packages *** 5.2.40+dfsg-2 0 650 http://ftp.it.debian.org/debian/ stable/main amd64 Packages 100 /var/lib/dpkg/status
I tre asterischi nel mio caso indicano che quella particolare versione è installata. In fine utilizziamo questo comando per installare dal ramo scelto:
apt-get -t stable install mysql-workbench
In questo modo verrà installato il pacchetto scelto con tutte le sue dipendenze. Diversamente è possibile fare:
apt-get install mysql-workbench/stable
Che a differenza del comando precedente installerà SOLO il pacchetto mysql-workbench nella versione stable ma tutte le dipendenze saranno prese dal ramo di default
Per controllare quali sono i pacchetti experimental, piuttosto che stable attualmente installati sul sistema, eseguire:
aptitude search ~S~i~Aexperimental