Mixing Testing and Unstable
Certaines personnes ne veulent pas utiliser la version marquée Stable de Debian, généralement sous le prétexte que de nouvelles versions d'applications utiles sont sorties depuis et qu'elles veulent utiliser ces dernières.
Ces personnes ont plusieurs alternatives :
Utiliser des backports
Les backports sont ces applications récentes repackagées pour fonctionner sur la distribution Stable. C'est très utile pour une ou deux applications mais d'importants risques d'incompatibilité existent dès qu'il s'agit de bibliothèques ou d'un nombre important de paquets.
Utiliser Unstable
Unstable est la branche de développement de Debian, c'est elle que les développeurs de la distribution utilisent et c'est elle qui reçoit quotidiennement des mises à jour. Dont certaines cassent le système.
Utiliser Testing
Testing a été une première réponse à l'instabilité inhérente à Unstable. Les aventureux utiliseraient unstable et découvriraient les problèmes en avant-première. Ça permettait dès lors de les corriger. Après une semaine sans problème détecté, le paquet serait promu dans la distribution testing qui reprendrait ainsi les paquets récents, avec dix jours de retard mais en évitant les bugs importants.
Cette dernière solution est à favoriser mais il arrive parfois que l'utilisateur désire ardemment une application qui n'est encore disponible que dans Unstable.
Voici, après cette longue introduction, la solution.
Première étape: avoir les entrées pour Testing et Unstable dans le fichier sources.list (remplacez bien sûr par le serveur le plus rapide pour vous) :
deb http://ftp.debian.skynet.be/debian/ unstable main deb http://ftp.debian.skynet.be/debian/ testing main
Seconde étape: créer un fichier /etc/apt/preferences avec ce contenu :
Package: * Pin: release a=testing Pin-Priority: 990 Package: * Pin: release a=unstable Pin-Priority: 99
Normalement, apt installe systématiquement les paquets avec la version la plus élevée qu'il connaisse. Ce fichier lui indique que, non, la priorité des paquets venant d'Unstable doit être réduite; ainsi ils ne seront jamais utilisé automatiquement.
Voyons le cas pour le paquet console-common:
# apt-cache policy console-common console-common: Installed: 0.7.41 Candidate: 0.7.42 Version Table: 0.7.43 0 99 http://ftp.fr.debian.org sid/main Packages 0.7.42 0 990 http://ftp.fr.debian.org sarge/main Packages *** 0.7.41 0 100 /var/lib/dpkg/status
La version installée est la 0.7.41, apt connaît également les versions 0.7.42 et 0.7.43. La version qui sera installée lors d'une mise-à-jour sera la 0.7.42. Simulons l'installation:
# apt-get -s install console-common Reading Package Lists... Done Building Dependency Tree... Done The following packages will be upgraded: console-common 1 upgraded, 0 newly installed, 0 to remove and 35 not upgraded. Inst console-common [0.7.41] (0.7.42 Debian:testing) Conf console-common (0.7.42 Debian:testing)
Maintenant, imaginons qu'un bug qui nous est très désagréable soit corrigé dans la version 0.7.43, venant d'unstable, comment l'installer ? Plusieurs possibilités:
# apt-get install console-common=0.7.43 # = numéro de version # apt-get install console-common/unstable # / branche # apt-get -t unstable install console-common # -t branche
Et le résultat, identique pour les trois commandes:
Reading Package Lists... Done Building Dependency Tree... Done Selected version 0.7.43 (Debian:unstable) for console-common The following packages will be upgraded: console-common 1 upgraded, 0 newly installed, 0 to remove and 35 not upgraded. Inst console-common [0.7.41] (0.7.43 Debian:unstable) Conf console-common (0.7.43 Debian:unstable)
utilisé parfois sous le terme "pinning" : installation de packages de différentes versions de Debian