Raven - Blog
04. Avril 2022

Debian - Bloquer les modifications d'un paquet

Posté le 04. Avril 2022  •  2 minutes  • 345 mots  • Autres langues:  English

Lorsque vous installez un paquet, ce dernier vient avec ses dépendances de manière automatique. Ensuite lorsque vous mettez à jour votre distribution, certains paquets (et notamment les dépendances) peuvent être supprimés si ils ne sont plus nécessaires par exemple.

Dans certains cas il peut être important de bloquer la mise à jour d’un paquet précis ou d’empêcher qu’il soit supprimé lors d’un apt-get autoremove ou autre upgrade.

Méthode apt-mark :

La commande apt-mark permet de marquer un paquet de différente manière, voici quelques exemple d’option :

Lors de l’installation d’un paquet A, les dépendances B, C et D s’installent. Le paquet A sera marqué comme “manuel” par apt et les paquets B, C et D seront marqués “auto”. Le jour où vous désinstallez le paquet A, les paquets B, C et D seront désinstallés automatiquement (sauf s’ils sont la dépendance de d’un autre paquet). Admettons que vous souhaitiez conserver le paquet C même après suppression de A, il suffit de le marquer en “manuel” avec :

1
apt-mark manual paquetC

Autre cas, vous souhaitez que le paquet A ne soit jamais mis à jour automatiquement. Sa version est primordiale pour vous et vous souhaitez maîtriser le moment où il sera mis à jour. Pour cela, vous pouvez empêcher qu’il soit mis à jour ou supprimé par un processus automatique comme apt-get upgrade avec :

1
2
apt-mark hold nondupaquet
apt-mark showhold

L’option showhold vous affichera la liste des paquets retenus.

Attention toutefois à ne pas trop abuser de cette méthode, vous vous retrouverez vite avec des problèmes de dépendances et de sécurité tôt ou tard.

Méthode alternative :

Vous pouvez faire la même chose avec le merveilleux dpkg bien sûr !

1
echo "nom_du_paquet hold" | dpkg --set-selections

Et voilà !

Pour débloquer un paquet :

1
echo "nom_du_paquet install" | dpkg --set-selections

Pour avoir la liste des paquets bloqués :

1
dpkg --get-selections | grep hold
Follow me

Subscribe to my RSS feed !