Recherche de site Web

4 façons de désactiver/verrouiller certaines mises à jour de packages à l'aide de la commande Yum


Package Manager est un logiciel qui permet à un utilisateur d'installer un nouveau logiciel, de mettre à niveau le système ou de mettre à jour un logiciel spécifique, etc. Dans le cas de systèmes basés sur Linux dans lesquels un logiciel comporte de nombreuses dépendances qui doivent être présentes sur le système pour une installation complète de ce logiciel, un logiciel tel que le gestionnaire de packages devient un outil indispensable sur chaque système.

Chaque distribution Linux est livrée avec son gestionnaire de paquets par défaut pour les fonctionnalités indiquées ci-dessus, mais parmi toutes celles que l'on trouve le plus sont : yum sur les systèmes RHEL et Fedora (où il est actuellement remplacé par DNF à partir de Fedora 22+) et apt de Debian.

Si vous recherchez l'outil APT pour bloquer ou désactiver certaines mises à jour de packages spécifiques, vous devriez lire cet article.

Dnf ou Danified yum remplace yum sur les systèmes Fedora qui est un autre dans notre liste. S'ils sont explorés correctement, ces gestionnaires de packages peuvent être utilisés pour les fonctionnalités suivantes :

  1. Installation d'un nouveau logiciel à partir du référentiel.
  2. Résolvez les dépendances du logiciel en installant ces dépendances avant d'installer le logiciel.
  3. Maintenir la base de données des dépendances de chaque logiciel.
  4. Version rétrograde de tout logiciel existant.
  5. Mise à niveau de la version du noyau.
  6. Liste des packages disponibles pour l'installation.

Nous avons déjà couvert des articles détaillés séparément sur chaque gestionnaire de packages individuel avec des exemples pratiques, vous devriez les lire pour contrôler et gérer la gestion des packages dans vos distributions Linux respectives.

Lire aussi :

  1. Maîtriser Yum Command avec ces 20 exemples pratiques
  2. 27 commandes DNF pour gérer les packages dans les versions Fedora 22+
  3. Apprenez 25 commandes APT pour gérer les packages Ubuntu

Dans l'article, nous verrons comment verrouiller/désactiver certaines mises à jour de packages à l'aide du gestionnaire de packages Yum dans les systèmes RHEL/CentOS et Fedora (applicable jusqu'à Fedora 21, version ultérieure plus récente de Fedora livré avec dnf comme gestionnaire de paquets par défaut).

Désactiver/verrouiller les mises à jour des packages à l'aide de Yum

Yellow dog Updater, Modified (yum) est un outil de gestion de packages dans les distributions basées sur RedHat telles que CentOS et Fedora. Diverses stratégies utilisées pour verrouiller/désactiver les mises à jour des packages à l'aide de Yum sont décrites ci-dessous :

1. Désactiver définitivement le package pour l'installation ou la mise à jour

1. Ouvrez et modifiez le fichier yum.conf, qui se trouve dans /etc/yum.conf ou dans /etc/ miam/miam.conf.

Cela ressemble à ci-dessous :

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
...

Ici, pour exclure certains packages de l'installation ou de la mise à niveau, il vous suffit d'ajouter une variable d'exclusion ainsi que le nom du package que vous souhaitez exclure. Par exemple, si je souhaite exclure tous les packages python-3 de la mise à jour, j'ajouterai simplement la ligne suivante à yum.conf :

exclude=python-3*

Pour exclure plusieurs packages, séparez simplement leurs noms par un espace.

exclude=httpd php 
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
exclude=python-3*        [Exclude Single Package]
exclude=httpd php        [Exclude Multiple Packages]
...

Remarque : pour inclure ces packages, en ignorant les entrées dans yum.conf, utilisez « -disableexcludes » et définissez vers all|main|repoid, où 'main' sont ceux saisis dans yum.conf et 'repoid' sont ceux dont l'exclusion est spécifiée dans le répertoire repos.d, comme expliqué plus loin.

Essayons maintenant d'installer ou de mettre à jour les packages spécifiés et voyons que la commande yum désactivera leur installation ou leur mise à jour.

# yum install httpd php

Loaded plugins: fastestmirror, langpacks, versionlock
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: mirror.wanxp.id
 * extras: mirror.nbrc.ac.in
 * updates: mirror.nbrc.ac.in
Nothing to do
# yum update httpd php

Loaded plugins: fastestmirror, langpacks, versionlock
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: mirror.wanxp.id
 * extras: mirror.nbrc.ac.in
 * updates: mirror.nbrc.ac.in
No packages marked for update

2. Désactiver temporairement le package pour l'installation ou la mise à jour

2. Ci-dessus se trouvait une solution permanente pour exclure un package, car à moins que le fichier ne soit modifié, ce package ne sera pas mis à jour. Voici également une solution temporaire pour cela. Juste au moment où vous effectuez une mise à jour, utilisez le commutateur -x dans la commande yum pour exclure le package que vous ne souhaitez pas mettre à jour, comme :

yum -x python-3 update

La commande ci-dessus mettra à jour tous les packages dont les mises à jour sont disponibles, à l'exclusion de python-3 sur votre système.

Ici, pour exclure plusieurs packages, utilisez -x plusieurs fois ou séparez les noms de packages avec ',' dans un seul commutateur.

yum -x httpd -x php update
OR
yum -x httpd,php update

3. L'utilisation du commutateur --exclude fonctionne de la même manière que -x, il suffit de remplacer -x par –exclure et lui transmettre une liste de noms de packages séparés par ','.

yum --exclude httpd,php

3. Désactivez les mises à jour des packages à l'aide du référentiel

4. Pour tout package installé à partir de n'importe quelle source externe via l'ajout d'un référentiel, il existe un autre moyen d'arrêter sa mise à niveau à l'avenir. Cela peut être fait en éditant son fichier .repo qui est créé dans /etc/yum/repos.d/ ou /etc/yum.repos.d< répertoire.

Ajoutez l'option d'exclusion avec le nom du package dans le dépôt. Comme : pour exclure tout package, par exemple wine, du repo epel, ajoutez la ligne suivante dans le fichier epel.repo :

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
exclude=wine

Essayez maintenant de mettre à jour le package wine, vous obtiendrez une erreur comme indiqué ci-dessous :

# yum update wine

Loaded plugins: fastestmirror, langpacks, versionlock
epel/x86_64/metalink                                    | 5.6 kB     00:00     
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: mirror.wanxp.id
 * extras: mirror.nbrc.ac.in
 * updates: mirror.nbrc.ac.in
No Match for argument: wine
No package wine available.
No packages marked for update

4. Désactivez la mise à jour du package à l'aide de l'option versionlock

5. Une autre façon dans yum de masquer la version d'un paquet, le rendant ainsi indisponible pour la mise à niveau, consiste à utiliser l'option versionlock de yum, mais pour ce faire, vous Le package yum-plugin-versionlock doit être installé sur le système.

yum -y install yum-versionlock

Par exemple, pour verrouiller la version du package, dites httpd sur 2.4.6 uniquement, écrivez simplement la commande suivante en tant que root.

yum versionlock add httpd
Exemple de sortie
Loaded plugins: fastestmirror, langpacks, versionlock
Adding versionlock on: 0:httpd-2.4.6-40.el7.centos
versionlock added: 1

Pour afficher les packages verrouillés, utilisez la commande suivante pour répertorier les packages dont la version a été verrouillée.

yum versionlock list httpd
Exemple de sortie
Loaded plugins: fastestmirror, langpacks, versionlock
0:httpd-2.4.6-40.el7.centos.*
versionlock list done

Conclusion

Voici quelques conseils qui vous aideront à désactiver/verrouiller les mises à jour des packages à l'aide du gestionnaire de packages Yum. Si vous avez d'autres astuces pour faire les mêmes choses, vous pouvez les commenter avec nous.