Ce qui suit s'adresse à Debian et les distributions basées sur celle ci (Ubuntu et toutes les distro utilisant apt-get comme package manager)
Je ne vais pas faire un cours sur le fonctionnement des versions chez Debian.
Disons pour faire vite, qu'il y a toujours 3 niveaux :
La version Stable est plutôt destiné à l'installation des serveurs. Comme son nom l'indique, elle est très stable et très sécurisé ! Mais 90% des programmes sont dans des versions un peu ancienne.
La version Testing est plutôt utilisé sur les desktop, machine de bureaux. Elle est relativement stable en général mais il arrive parfois que certaines mise à jours plantent et que durant quelques jours certaines parties ne fonctionnent plus.
Ubuntu est basé sur cette version
La version Unstable est réservé aux développeurs de la distribution et aux utilisateurs avertis qui n'ont pas peur d'avoir une machine planté durant plusieurs jours et qui sont en mesure de se débrouillé (mettre les mains dans le cambouis)
Normalement, on ne mélange pas les différentes versions, ne serait ce que pour des raisons de stabilité et de report de bugs. (les développeurs refusent de corrigé le moindre bug si la machine a une installation mixte)
Donc, pour ma part, j'installe mes machines en Testing.
Cela me permet d'avoir une machine assez stable avec des logiciels récents.
Cependant, il arrive (rarement) qu'il soit nécessaire et intéressant de pourvoir installer une version d'un logiciel d'une autre branche.
Par exemple:
J'aime bien le gestionnaire de fichier
"Gnome Commander", mais, pour une raison qui m'échappe, il n'est pas disponible en Testing !!
J'aimerais bien pouvoir installer la version stable ...
Autre cas:
J'ai une machine avec un
LVM (Logical Volume Manager)Malheureusement les dev du kernel et ceux de udev, ont changé récemment le mode de fonctionnement des blocks devices et les LVM sont maintenant des link dans /dev/mapped/ ...
Hors, Grub ne sait pas suivre les links

ce qui fait que si vous essayé de regénéré la config de Grub, il crash comme une grosse merde ...
Pas de bol, j'étais en train d'installé cette machine et donc je dois regénéré cette config fréquemment.
Une correction existe, mais elle n'est disponible que en Unstable ...
une solution rapide serait de mettre les dépôts Stable et Unstable dans /etc/apt/sources.list mais si on fait cela, le gestionnaire de paquet va prendre TOUTES les versions les plus récentes et ma machine sera alors en Unstable

... et ce n'est pas non plus ce que je veux !!
Heureusement, il existe une solution simple.
Il faut éditer le fichier /etc/apt/apt.conf (le créer s'il n'existe pas) et mettre
APT::Default-Release "version";
On remplace "version" par celle qui nous intéresse.
On peux bien sur mettre stable, testing, unstable . Mais on peux aussi utiliser les noms de code des versions comme Lenny ou Karmic.
Ensuite, il faut mettre dans /etc/apt/sources.list les dépots Stable et Unstable (si vous étiez en Testing)
deb http: //fr.debian.org/debian testing main contrib non-free
deb http: //security.debian.org testing/updates main contrib non-free
deb http: //fr.debian.org/debian stable main contrib non-free
deb http: //security.debian.org stable/updates main contrib non-free
deb http: //fr.debian.org/debian unstable main contrib non-free
(il n'y a pas de "security update" en unstable)
Maintenant si vous faites un:
apt-get update
Vous devriez voir qu'il va charger les listes de toutes les versions
Mais si vous faites un:
apt-get dist-upgrade
Vous constaterez qu'il ne met à jours que les versions en Testing
Maintenant, pour installer un paquet dans une autre version:
apt-get -t 'version' install 'package'
par exemple, pour installer grub en version instable:
apt-get -t unstable install grup-pc
(les dépendances sont automatiquement mise à jour)
C'est une opération "one shot", c'est à dire que si une version supérieure apparait en Unstable, le paquet ne sera pas mis à jour sur votre machine.
Il ne sera upgradé que si une version supérieure apparait en Testing.
ericc