Gérer l’installation de paquets via l’APT-Pinning

Les paquets de la version « stable » de Debian sont certes stables, mais bien souvent datés. Il est néanmoins possible de forcer l’installation de paquet venant d’une autre branche (testing ou unstable).

Déclaration des nouveaux serveurs de paquets dans le fichier « /etc/apt/sources.list ».
[generic]## Stable
deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free

## Unstable
deb http://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy main contrib non-free

## Security
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
[/generic]

Mise à jour de la liste des paquets.
aptitude update

A partir de là, il faut savoir qu’il est possible existe une technique manuelle à la place de l’APT-Pinning. En ajoutant l’option « -t nom-version-debian » à la commande « aptitude install nom-paquet ».

Mais notre but est d’automatiser le traitement, alors créons le fichier « /etc/apt/preferences » avec la trame suivante. Le premier groupe est le choix par défaut lors de l’installation ou la mise à jour des paquets. Le deuxième groupe permet de forcer l’installer le paquet Unison issu de la branche unstable de Debian. On observe que la priorité est plus élevée que celle par défaut pour forcer sa sélection.
[generic]Package: *
Pin: release n=squeeze
Pin-Priority: 650

Package: unison
Pin: release n=wheezy
Pin-Priority: 700
[/generic]

La commande « aptitude versions nom-paquet » permet de voir la différence entre les versions (pour comparer plus en détails les différences de versions rendez-vous sur Debian Packages). On observe que par défaut le paquet stable sera installé à cause de sa priorité. Notre fichier « preferences » va changer tout ça lors des installations et des mises à jour.
[generic]root@serveur:~# aptitude versions unison
p 2.32.52-1 stable 650
p 2.40.63-2 testing 500[/generic]

Vérification du paquet candidat en regardant la version qui sera installée.
aptitude show nom-paquet