Recherche de site Web

Comment empêcher les mises à jour et installations de paquets dans Ubuntu


Maintenir votre système Ubuntu à jour est important, mais parfois vous pouvez vouloir empêcher certains paquets d'être installés, mis à jour ou supprimés automatiquement. Cela pourrait être parce que :

  • Vous avez besoin d'une version spécifique pour la compatibilité.
  • Vous voulez éviter les bugs potentiels dans les nouvelles mises à jour,
  • Vous avez personnalisé un forfait et ne voulez pas de modifications.

Voici quelques méthodes simples pour verrouiller des paquets dans Ubuntu et ses dérivés comme elementary OS, Linux Mint, Pop!_OS et Zorin OS. Ces méthodes vous apprendront comment empêcher un paquet d'être :

  • Installé automatiquement (même en tant que dépendance),
  • Mis à jour automatiquement,
  • Supprimé par accident.

Remarque : Veuillez noter que retenir des paquets pour éviter qu'ils soient mis à jour n'est pas recommandé en production. Les paquets obsolètes peuvent être vulnérables et causer des problèmes de sécurité. Il est donc toujours recommandé de maintenir votre système Ubuntu à jour.

Méthode 1 : Geler un paquet avec apt-mark hold

Pour verrouiller un paquet afin qu'il ne soit pas installé, mis à jour ou supprimé automatiquement, nous pouvons utiliser la commande 'apt-mark'. Cette commande a de nombreuses options. Vous pouvez lire les pages de manuel pour des détails sur chaque option.

man apt-mark

Aux fins de ce guide, nous discuterons uniquement de deux options, à savoir hold et unhold.

  1. maintenir - Empêcher qu'un paquet soit installé, mis à jour, amélioré ou supprimé.
  2. unhold - Libérer le paquet de la mise en attente, et nous permettre d’installer, de mettre à jour ou de supprimer ce paquet.

Marquons (retenons) un paquet, par exemple htop, comme indiqué ci-dessous.

sudo apt-mark hold htop

Exemple de sortie :

htop set on hold.

Le paquet verrouillé restera à la même version même après que vous ayez mis à jour votre système. Cette astuce peut être très utile pour retenir les pilotes graphiques.

Pour vérifier quels paquets sont en attente :

apt-mark showhold

Pour lever le gel du paquet, il suffit d'exécuter :

sudo apt-mark unhold htop

Exemple de sortie :

Canceled hold on htop.

Veuillez noter que cette méthode empêche un package d'être mis à niveau, mais il peut toujours être supprimé ou réinstallé manuellement. Vous pouvez toujours supprimer les packages verrouillés en utilisant la commande "apt-get remove <nomdupackage>".

Cette méthode empêche uniquement que l'application soit automatiquement installée, mise à jour, améliorée ou supprimée lors de la mise à niveau du système.

Maintenir un paquet signifie en fait que vous dites au gestionnaire de paquets de garder la version actuelle quoi qu'il arrive, même si une nouvelle version est disponible. Cela est utile si la version récente d'un programme qui fonctionnait jusque-là se casse après une mise à jour.

Lorsque vous essayez de mettre à jour le système en utilisant les commandes sudo apt update ou sudo apt upgrade, les paquets marqués resteront de la même version au moment où vous maintenez le paquet.

Méthode 2 : Verrouiller un paquet avec dpkg pour empêcher toute modification

Cette méthode bloque l'installation, la mise à niveau ou la suppression d'un paquet en définissant son statut dans la base de données des paquets.

Pour geler un paquet, exécutez :

echo "firefox hold" | sudo dpkg --set-selections

Pour confirmer qu'il est verrouillé :

dpkg --get-selections | grep firefox

Exemple de sortie :

firefox			hold

Pour retirer le verrou :

echo "firefox install" | sudo dpkg --set-selections

Cette méthode fonctionne bien si vous gérez plusieurs machines et utilisez des scripts personnalisés.

Méthode 3 : Bloquer l'installation d'un paquet (Verrouillage APT)

Utilisez ceci si vous voulez bloquer complètement un paquet, même en tant que dépendance.

Ouvrez un nouveau fichier de préférences :

sudo nano /etc/apt/preferences.d/block-firefox

Ajoutez les lignes suivantes :

Package: firefox
Pin: release *
Pin-Priority: -1

Enregistrez et quittez le fichier en appuyant sur Ctrl+O, Entrée, puis Ctrl+X.

Pour confirmer qu'il est bloqué, exécutez la commande suivante :

apt-cache policy firefox

Vous devriez voir :

Package: firefox
Pin: release *
Pin-Priority: -1

Méthode 4 : Empêcher les mises à jour des paquets en utilisant Synaptic (méthode GUI)

Si vous avez le gestionnaire de paquets Synaptic installé sur votre système, vous pouvez facilement verrouiller un paquet afin qu'il ne soit pas installé, mis à jour, amélioré ou supprimé comme décrit ci-dessous.

Ouvrez le gestionnaire Synaptic soit depuis le tableau de bord Unity, soit depuis le menu. Recherchez le paquet que vous souhaitez maintenir. Ensuite, allez dans Paquet depuis la barre de menu et cliquez sur maintenir.

Empêcher un paquet d'être installé, mis à jour ou supprimé automatiquement à l'aide de Synaptic sous Ubuntu

C'est tout. Maintenant, le paquet ne sera pas touché pendant la mise à niveau du système tant que vous l'avez maintenu en attente.

Si le gestionnaire de paquets Synaptic n'est pas installé sur votre système, vous pouvez l'installer en utilisant la commande :

sudo apt-get install synaptic

Vérification de vos modifications

Après avoir mis une retenue, testez-la en exécutant :

sudo apt upgrade

Votre paquet retenu devrait apparaître dans la liste mais afficher « retenu » plutôt que d'être mis à niveau.

Notes importantes

Ces méthodes ne préviennent que les mises à jour automatiques. Vous pouvez toujours mettre à jour manuellement les paquets retenus. Faites attention en retenant des paquets système critiques car cela pourrait causer des problèmes de sécurité.

Pour contourner temporairement les blocages pendant une mise à jour, utilisez :

sudo apt-get -o DPkg::Options::="--force-overwrite" install package_name

N'oubliez pas de vérifier périodiquement vos paquets maintenus (apt-mark showhold) et de supprimer les maintiens lorsqu'ils ne sont plus nécessaires pour garder votre système sécurisé.

  • Testez toujours les modifications d'abord sur des systèmes non critiques.
  • Ne bloquez pas les paquets essentiels sauf si vous en êtes sûr.
  • Ces méthodes sont réversibles, il suffit de suivre les étapes à l'envers.

Fiche de référence sur le verrouillage des paquets Ubuntu

Voici une fiche de référence concise pour un accès rapide. Téléchargez-la et gardez-la près de votre bureau.

Fiche de référence sur le verrouillage des paquets Ubuntu

Conclusion

Vous savez maintenant comment empêcher un paquet d'être installé, mis à jour ou supprimé lors de la mise à jour du système dans Ubuntu et ses dérivés.

C'est une bonne pratique à suivre lorsque vous découvrez que la version récente d'un paquet particulier n'est pas stable ou risque de casser le système. Vous pouvez simplement bloquer les paquets en utilisant la commande apt-mark, de sorte que les gestionnaires de paquets ne touchent pas au paquet tant que vous ne le débloquez pas.