Tutoriel Linux

Bloquer la mise à jour d’un paquet Debian, puis lever le hold

Débutant4 min de lecture

Vous devez parfois conserver une version précise d’un paquet Debian, après un incident applicatif ou le temps de vérifier une mise à jour sur une machine pilote. apt-mark hold bloque les changements automatiques sur ce paquet. Il bloque aussi sa suppression.

Utilisez-le pour une exception identifiée, avec un motif et une date de réexamen. Laisser un paquet de sécurité bloqué pendant des mois finit par créer un angle mort dans les mises à jour.

Tux avec un paquet Debian bloqué puis réactivé
Bloquez une version le temps de la tester, puis retirez le hold dès que le correctif est validé.

Identifier le paquet et la version installée

Commencez par vérifier le nom exact du paquet. Une recherche dans les dépôts ne dit pas toujours ce qui est réellement installé sur le serveur.

dpkg-query -W -f='${Package} ${Version}\n' nom-du-paquet
apt-cache policy nom-du-paquet

La première commande affiche la version locale. La seconde compare cette version avec les candidats connus par APT. Si le paquet est lié à un service, notez aussi le symptôme et la version qui fonctionne avant de le bloquer.

Un hold ne remplace pas la compréhension d’une dépendance. Si vous bloquez openssl, linux-image ou une bibliothèque utilisée par plusieurs applications, regardez ce que la prochaine mise à jour voulait modifier avant de figer le paquet.

Bloquer la mise à jour avec apt-mark hold

La commande demande les droits administrateur. Remplacez nom-du-paquet par le nom relevé à l’étape précédente.

sudo apt-mark hold nom-du-paquet
sudo apt-mark showhold

showhold doit afficher le paquet. APT respecte ensuite ce marquage lors des opérations habituelles de mise à jour. Vous pouvez tout de même contrôler ce qu’il ferait avant d’accepter une mise à niveau :

sudo apt update
apt list --upgradable
sudo apt-get -s upgrade

L’option -s simule l’opération. Elle ne télécharge ni n’installe de paquet. Vérifiez que le paquet bloqué reste à sa version attendue et que les dépendances ne poussent pas APT vers une situation incohérente.

Ne pas confondre hold et paquet installé manuellement

apt-mark manual empêche surtout l’auto-suppression d’une dépendance. Il ne bloque pas sa mise à jour. À l’inverse, apt-mark hold modifie la sélection dpkg du paquet pour empêcher son installation, sa mise à niveau ou sa suppression automatique.

Vous pouvez vérifier cette sélection avec dpkg :

dpkg --get-selections nom-du-paquet
dpkg --get-selections | grep ' hold$'

Cette distinction évite un faux sentiment de sécurité. Un paquet marqué manual peut très bien passer à une nouvelle version lors de apt upgrade.

Lever le hold après le test

Quand le correctif est validé sur une machine de test, retirez le blocage puis contrôlez à nouveau la liste. Ne lancez pas une mise à niveau globale juste pour débloquer un seul paquet.

sudo apt-mark unhold nom-du-paquet
sudo apt-mark showhold
sudo apt install nom-du-paquet

La dernière commande cible uniquement le paquet concerné. Relisez les paquets supplémentaires proposés par APT avant de confirmer. Pour un paquet sensible, redémarrez ensuite le service concerné et vérifiez ses logs. La page de manuel apt-mark de Debian détaille aussi les sélections hold, install, remove et purge.

Si le hold avait été posé après une mise à jour cassée, gardez dans votre ticket ou votre documentation : le paquet, la version figée, la raison, la date du test et la condition qui autorise le déblocage. Cette trace évite qu’un autre administrateur retire le hold sans savoir pourquoi il existait.

Quand faut-il retirer un paquet de la liste ?

Revenez sur les holds à chaque cycle de maintenance. Un blocage temporaire peut devenir dangereux lorsqu’une mise à jour corrige une faille ou une incompatibilité de dépendances. Vérifiez les annonces Debian ou l’éditeur du logiciel, testez la nouvelle version hors production, puis utilisez apt-mark unhold dès que le problème initial est levé.

Pour installer un paquet .deb local et réparer les dépendances proprement, consultez aussi notre guide sur dpkg et APT. Si vous automatisez les correctifs de sécurité, l’article sur unattended-upgrades sur Debian explique les contrôles à garder avant de laisser tourner la tâche seule.