:::: MENU ::::

Pinning di base di apt-get

In questi giorni ho avuto il problema di aggiornare il pacchetto wine di un sistema Debian 4 (Etch), fornito alla versione 0.9.25, alla versione 0.9.50. Poichè il pacchetto aggiornato è contenuto soltanto nella distribuzione unstable di Debian, è stato necessario inserirlo all’interno della stable. Questa è stata una buona occasione per documentarsi un po’ sul pinning di apt-get, tecnica che permette di mischiare pacchetti da diversi repository apt.Ecco come ho fatto.

Innanzi tutto questo è il mio file /etc/apt/sources.list

#Stable
deb http://ftp.fi.debian.org/debian stable main non-free contrib
#Testing
deb http://ftp.fi.debian.org/debian testing main non-free contrib
#Unstable
deb http://ftp.fi.debian.org/debian unstable main non-free contrib
#Aggiornamenti di sicurezza per stable
deb http://security.debian.org/ etch/updates main contrib

Il pinning è basato su un file che definisce le priorità dei repository da cui installare i pacchetti. Tale file si chiama /etc/apt/preferences ed il contenuto da me impostato è il seguente

Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Package: *
Pin: release a=unstable
Pin-Priority: 600

Infine bisogna creare/modificare il file /etc/apt/apt.conf e incollargli queste righe

APT::Default-Release “stable”;
APT::Cache-Limit 15000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded “true”;

A questo punto apt è configurato per preferire, nell’ordine, pacchetti da stable, testing e unstable. Aggiorniamo la nostra cache con un

# apt-get update

Infine per l’installazione esistono due varianti dello stesso comando. La prima

# apt-get install wine/unstable

Questa installa la versione di wine contenuta in unstable e prova a soddisfare le dipendenze con pacchetti da stable. È possibile che l’installazione non vada a buon fine, nel qual caso il problema viene adeguatamente segnalato. L’altro metodo di installazione è:

# apt-get install -t unstable wine

Questo è il metodo da me utilizzato, l’unica differenza dal precedente è che le dipendenze vengono soddisfatte da pacchetti presenti anch’essi in unstable.

Con questi passaggi tutto è stato aggiornato come desideravo. Per ulteriori informazioni rimando a questi link:

http://jaqque.sbih.org/kplug/apt-pinning.html
http://guide.debianizzati.org/index.php/APT_uso_avanzato:_mixare_releases_diverse