Recherche de site Web

Comment désactiver/verrouiller ou mettre sur liste noire les mises à jour des packages à l'aide de l'outil Apt


APT signifie Advanced Packaging Tool est un autre gestionnaire de packages trouvé sur les systèmes basés sur Linux. Initialement conçu comme un frontal pour que dpkg fonctionne avec les packages .deb, apt a réussi à montrer sa visibilité sur Mac OS, Open Solaris etc.

Vous souhaitez apprendre et maîtriser les commandes APT et DPKG pour gérer la gestion des paquets Debian, puis utilisez nos articles approfondis qui couvriront plus de 30+ exemples sur les deux outils.

Dans cet article, nous verrons diverses techniques pour désactiver/verrouiller l'installation, la mise à niveau et la suppression d'un paquet dans Debian Linux et ses dérivés tels que Ubuntu et Linux Mint.

1. Désactiver/verrouiller le package à l'aide de « apt-mark » avec l'option hold/unhold

La commande apt-mark marquera ou décochera un progiciel comme étant automatiquement installé et elle est utilisée avec l'option hold ou unhold.

  1. hold – cette option est utilisée pour marquer un package comme retenu, ce qui empêchera l'installation, la mise à niveau ou la suppression du package.
  2. unhold – cette option est utilisée pour supprimer une suspension précédemment définie sur un package et permettre l'installation, la mise à niveau et la suppression du package.

Par exemple, pour rendre un package indiquant apache2 indisponible pour l'installation, la mise à niveau ou la désinstallation, vous pouvez utiliser la commande suivante sur le terminal avec les privilèges root :

apt-mark hold apache2

Pour rendre ce package disponible pour la mise à jour, remplacez simplement « hold » par « unhold ».

apt-mark unhold apache2

Blocage des mises à jour de packages à l'aide du fichier de préférences APT

Une autre façon de bloquer les mises à jour d'un package spécifique consiste à ajouter son entrée dans /etc/apt/preferences ou /etc/apt/preferences.d/official-package-repositories.preffichier. Ce fichier est responsable de la mise à jour ou du blocage de certaines mises à jour de packages en fonction de la priorité spécifiée par l'utilisateur.

Pour bloquer le package, il vous suffit de saisir son nom, sa fonctionnalité supplémentaire et la priorité à laquelle vous souhaitez le placer. Ici, la priorité < 1 bloquerait le package.

Pour bloquer n'importe quel paquet, entrez simplement ses détails dans le fichier /etc/apt/preferences comme ceci :

Package: <package-name> (Here, '*' means all packages)
Pin: release *
Pin-Priority: <less than 0>

Par exemple, pour bloquer les mises à jour du package apache2, ajoutez l'entrée comme indiqué :

Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1

Nous pouvons utiliser d'autres options avec le mot-clé release pour identifier davantage le package sur lequel nous appliquons la priorité Pin. Ces mots-clés sont :

  1. a -> Archiver
  2. c -> Composant
  3. o -> Origine
  4. l -> Étiquette
  5. n -> Architecture

comme :

Pin: release o=Debian,a=Experimental

Cela signifierait extraire le paquet indiqué de l'archive expérimentale du paquet Debian.

Liste noire d'une mise à jour de package à l'aide du fichier APT Autoremove

Une autre façon de mettre un paquet sur liste noire lors de l'installation consiste à mettre à jour son entrée dans l'un des fichiers contenus dans le répertoire /etc/apt/apt.conf.d/ qui est 01autoremove.

Un exemple de fichier est présenté ci-dessous :

APT
{
  NeverAutoRemove
  {
        "^firmware-linux.*";
        "^linux-firmware$";
  };

  VersionedKernelPackages
  {
        # linux kernels
        "linux-image";
        "linux-headers";
        "linux-image-extra";
        "linux-signed-image";
        # kfreebsd kernels
        "kfreebsd-image";
        "kfreebsd-headers";
        # hurd kernels
        "gnumach-image";
        # (out-of-tree) modules
        ".*-modules";
        ".*-kernel";
        "linux-backports-modules-.*";
        # tools
        "linux-tools";
  };

  Never-MarkAuto-Sections
  {
        "metapackages";
        "restricted/metapackages";
        "universe/metapackages";
        "multiverse/metapackages";
        "oldlibs";
        "restricted/oldlibs";
        "universe/oldlibs";
        "multiverse/oldlibs";
  };
};

Désormais, pour mettre n'importe quel paquet sur liste noire, il vous suffit de saisir son nom dans Never-MarkAuto-Sections. Entrez simplement le nom du package à la fin dans Never-MarkAuto-Section et enregistrez et fermez le fichier. Cela bloquerait la recherche de mises à jour supplémentaires de ce package.

Par exemple, pour mettre un paquet sur liste noire et empêcher sa mise à jour, ajoutez l'entrée comme indiqué :

Never-MarkAuto-Sections
  {
        "metapackages";
        "restricted/metapackages";
        "universe/metapackages";
        "multiverse/metapackages";
        "oldlibs";
        "restricted/oldlibs";
        "universe/oldlibs";
        "multiverse/oldlibs";
        "apache2*";
  };
};

Sélection de packages personnalisés pour la mise à jour

Une autre alternative consiste à choisir ce que vous souhaitez mettre à jour. L'outil apt vous donne la liberté de choisir ce que vous souhaitez mettre à jour, mais pour cela, vous devez connaître tous les packages disponibles pour la mise à niveau.

Pour une telle chose, l’ensemble de commandes suivant peut s’avérer utile :

a. Pour répertorier les packages dont les mises à jour sont en attente.

apt-get -u -V upgrade

b. Pour installer uniquement des packages sélectifs.

apt-get --only-upgrade install <package-name>

Conclusion

Dans cet article, nous avons expliqué quelques façons de désactiver/bloquer ou de mettre sur liste noire les mises à jour de packages à l'aide de la méthode APT. Si vous connaissez un autre moyen préféré, faites-le nous savoir via les commentaires ou si vous recherchez la commande yum pour désactiver/verrouiller la mise à jour du package, lisez cet article ci-dessous.