Comment désactiver, verrouiller ou mettre sur liste noire les mises à jour de paquets avec APT
L’outil Apt est un système avancé de gestion de paquets utilisé dans les distributions Linux basées sur Debian, comme Ubuntu, qui vous permet d’installer, de mettre à jour et de supprimer facilement des paquets logiciels.
Initialement, APT a été conçu comme une interface pour que dpkg puisse fonctionner avec .deb paquets. Il a depuis gagné en visibilité sur macOS, OpenSolaris et d’autres systèmes.
Vous voulez apprendre et maîtriser les commandes APT et DPKG pour gérer la gestion des paquets Debian ? Utilisez nos articles approfondis, qui couvrent plus de 30 exemples des deux outils.
Dans cet article, nous allons explorer diverses techniques pour désactiver ou verrouiller l’installation, la mise à niveau ou la suppression de paquets dans Debian Linux et ses dérivés, tels que Ubuntu et Linux Mint.
1. Verrouillage d’un paquet à l’aide d’apt-mark
La commande apt-mark marquera ou démarquera un paquet logiciel comme étant automatiquement installé, et elle est utilisée avec les options hold ou unhold.
hold: cette option est utilisée pour marquer un paquet comme étant retenu, ce qui bloquera l’installation, la mise à niveau ou la suppression du paquet.unhold: cette option est utilisée pour supprimer une suspension précédemment définie sur un package, ce qui permet de l’installer, de le mettre à niveau ou de le supprimer.
Verrouiller le paquet dans Ubuntu
Par exemple, pour rendre un paquet comme apache2 indisponible pour l’installation, la mise à niveau ou la désinstallation, vous pouvez utiliser la commande suivante dans le terminal avec les privilèges root :
sudo apt-mark hold apache2
Pour vérifier si le package est correctement verrouillé, exécutez :
apt-mark showhold
Cette commande affichera une liste de tous les paquets actuellement verrouillés.
Déverrouillage du package dans Ubuntu
Si vous décidez d’autoriser à nouveau les mises à jour du package, vous pouvez le déverrouiller avec :
sudo apt-mark unhold apache2
2. Bloquer les mises à jour de paquets à l’aide des préférences APT
Une autre façon de bloquer les mises à jour d’un paquet spécifique est d’ajouter son entrée dans le fichier /etc/apt/preferences ou /etc/apt/preferences.d/referencefile, qui peut être n’importe quel fichier et il est responsable de la mise à jour ou du blocage de certaines mises à jour de paquets en fonction de la priorité spécifiée par l’utilisateur.
Pour bloquer le paquet, créez un nouveau fichier dans le répertoire /etc/apt/preferences.d/.
sudo nano /etc/apt/preferences.d/no-updates
Dans le fichier, ajoutez les lignes suivantes pour spécifier le package que vous souhaitez mettre sur liste noire :
Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1
Explication des options :
o=Ubuntu: Spécifie que l’épinglage s’applique aux paquets provenant de la distribution Ubuntu.Pin-Priority : 1: La définition d’une priorité de 1 bloque effectivement les mises à jour puisque tout paquet avec une priorité plus élevée aura la priorité.
Vous pouvez affiner davantage vos critères d’épinglage à l’aide de différents mots-clés :
a: Archiver (par exemple, a=stable, a=test)c: Composant (par exemple, c=principal, c=univers)o: Origine (par exemple, o=Debian, o=Ubuntu)l: Étiquette (utilisée pour les étiquettes de référentiel spécifiques)n: Architecture (par exemple, n=amd64)
Après avoir enregistré le fichier de préférences, exécutez la commande suivante pour mettre à jour vos listes de paquets.
sudo apt update
3. Mettre sur liste noire une mise à jour de paquet à l’aide du fichier de suppression automatique APT
Pour mettre sur liste noire une mise à jour de paquet à l’aide du fichier de suppression automatique APT, vous pouvez créer une configuration spécifique qui empêche la suppression de certains paquets lors des opérations de nettoyage du système.
Vous devez créer ou modifier un fichier 99autoremove dans le répertoire /etc/apt/apt.conf.d/, car ce fichier spécifiera les paquets à conserver.
sudo nano /etc/apt/apt.conf.d/99autoremove
Dans le fichier, ajoutez les lignes suivantes pour spécifier le paquet que vous souhaitez mettre sur liste noire pour qu’il ne soit pas automatiquement supprimé :
Apt::NeverAutoRemove {
"apache2";
};
Après avoir ajouté les lignes nécessaires, exécutez la commande suivante pour mettre à jour vos listes de packages et vous assurer que vos modifications prennent effet :
sudo apt update
Pour vérifier que le paquet a été correctement mis sur liste noire, vous pouvez essayer d’exécuter la commande apt autoremove pour voir que le paquet sur liste noire ne doit pas apparaître dans la liste des paquets qui seront supprimés.
sudo apt autoremove
Si vous voyez le paquet que vous avez mis sur liste noire (comme apache2) dans la liste, cela indique que la configuration n’a pas été appliquée correctement. S’il n’apparaît pas, la liste noire a réussi.
4. Mettre un paquet sur liste noire dans la liste des sources
Vous pouvez également mettre un paquet sur liste noire en modifiant la liste des sources, mais cela est moins courant et généralement non recommandé et cette méthode implique de commenter le dépôt qui fournit le paquet.
Ouvrez le fichier de liste des sources dans un éditeur de texte.
sudo nano /etc/apt/sources.list
Trouvez la ligne qui contient le dépôt pour le paquet que vous souhaitez mettre sur liste noire et commentez-la en ajoutant un # au début de la ligne.
# deb http://archive.ubuntu.com/ubuntu/ focal main restricted
Enfin, exécutez la commande suivante pour mettre à jour vos listes de packages :
sudo apt update
5. Éviter les mises à jour lors des mises à niveau
Si vous souhaitez éviter temporairement les mises à jour lors des mises à niveau du système, vous pouvez utiliser l’option --no-upgrade :
sudo apt upgrade --no-upgrade apache2
Cela mettra à niveau tous les paquets sauf celui que vous avez spécifié.
Conclusion
La désactivation, le verrouillage ou la mise sur liste noire des mises à jour de paquets à l’aide de l’outil Apt est un processus simple qui vous donne plus de contrôle sur votre système Linux.
Que vous choisissiez de verrouiller un paquet avec apt-mark, d’utiliser les préférences APT ou de modifier la liste des sources, chaque méthode a un but en fonction de vos besoins.
