J'utilise un petit serveur web pour tester les mises à jour du site avant de les déployer sur le site Live (entre autre).
Autrefois c'était un vieux pc qui tournais sous mon bureau, maintenant c'est une image virtuelle dans VirtualBox, mais le fonctionnement est le même (cela fait juste moins de bruit)
Régulièrement, comme sur tout système, j'applique les mises à jour avec :
apt-get update
apt-get dist-upgrade
(il n'y a pas d'interface graphique, tout à la console

)
L'autre jour, je me suis rendu compte que la version de php avait été passé en 5.4 avec pour conséquence que beaucoup de scripts ne fonctionnaient plus correctement.
De plus l'hébergeur est toujours en 5.3 et je tiens à rester dans la même version (sinon les tests ne veulent pas dire grand chose).
Je devais donc downgrader php !
La procédure n'est pas compliqué encore faut il savoir comment faire ....
C'est un exemple pour php mais c'est applicable pour n'importe quel autre soft.
Première chose, désinstaller php5.4 et toutes ses dépendances.
Ensuite chercher sur le net les paquets correspondants dans la version précédente.
Dans mon cas, c'était assez simple car disponible dans la branche "stable" de Debian.
Maintenant vous avez 2 choix:
* Si les paquets sont disponibles dans un repository et qu'il y a beaucoup de paquet à downloader/installer alors vous ajouter simplement celui-ci dans "/etc/apt/source-list"
* Si il n'y a que 1 ou 2 paquet(s), ou qu'ils ne sont pas disponible dans un repository, alors vous les downloadez sur votre machine et vous les installez manuellement avec "dpkg -i"
Si vous avez optez pour la méthode "apt/source-list"
Il faut ensuite mettre à jour la bas de données avec
apt-get update
puis on regarde les versions que apt connait avec "apt-cache policy
"
apt-cache policy php5
Logiquement, vous devez voir au moins 2 versions disponible. Dans mon cas 5.4.4-2 et 5.3.3-7squeeze8 avec l'indication du repository duquel elles viennent.
Vous pouver aussi faire
apt-cache showpkg php5
pour obtenir toutes informations du soft, inclus ses dépendances et le nom des paquets qui dépendent de celui-ci.
Quand vous avez l'information de la version que vous souhaitez installer, vous faites :
apt-get install php5=5.3.3-7squeeze8
Attention, si votre paquet dépend d'autres paquets, il faudra d'abord installer ceux-ci dans la version correcte !!!
Maintenant que c'est fait et que vous avez installé la version du soft que vous souhaitiez, il faut dire à apt (ou tout autre gestionnaire de paquet) qu'il ne doit pas mettre à jour cette version ... sinon la prochaine fois que vous ferez un "apt-get dist-upgrade" vous serez bon pour refaire toute la procédure.
Il faut savoir que dpkg maintient une liste de tout les paquets qui sont, ou ont été, installés sur votre machine ainsi que leur état d'installation. On va donc modifier cette liste pour dire que l'on ne souhaite pas upgrader ce paquet.
Pas de panique, tout est prévu :
echo php5 hold | dpkg --set-selections
Si vous avez plusieurs paquets, il faudra faire ceci avec tous !! Au cas ou une nouvelle version apparaisse, que apt n'essaye pas de mettre à jour un paquet (ce qui peux résulté en de petit problèmes)
Vous pouvez voir l'état de la liste avec
dpkg --get-selection php*
Si plus tard, vous décidez de finalement mettre à jour le soft, il faudra débloquer celui-ci en faisant :
echo php5 install | dpkg --set-selections
et ensuite procéder comme d'habitude.
L'inconvénient de cette méthode, c'est que le paquet ne sera jamais mis à jour ... même si une version 5.3.3-8 ou 5.3.4 apparaît. C'est à moi de régulièrement vérifier et de faire la mise à jour manuellement en débloquant d'abord le paquet puis en le rebloquant ensuite.
ericc