GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exclure un référentiel spécifique pour la mise à jour Yum dans CentOS / Red Hat

Q :J'ai plusieurs référentiels yum sur mon système. Par exemple, centos, epel, docker, mongo, etc. Lorsque j'exécute la commande yum update, les packages installés à partir de tous les référentiels sont mis à jour. Comment puis-je exclure un référentiel spécifique lors de la mise à jour de yum ?

R :Lors de la mise à jour de yum, pour exclure des packages appartenant à un référentiel spécifique, utilisez l'une des deux méthodes expliquées dans ce didacticiel.

N'oubliez pas non plus qu'au lieu d'exclure un référentiel entier, vous peut également exclure un package spécifique :10 exemples d'exclusion Yum pour ignorer les packages pour la mise à jour Linux Yum (Comment exclure les mises à jour du noyau Yum)

1. Obtenir la liste des référentiels

Pour afficher tous les référentiels disponibles sur votre système, exécutez yum repolist comme indiqué ci-dessous.

# yum repolist
repo id                repo name              status
base                   CentOS-6 - Base        6,575
extras                 CentOS-6 - Extras         62
updates                CentOS-6 - Updates     1,622
dockerrepo             Docker Repository          2
mongodb-org-3.0        MongoDB Repository        75
repolist: 8,336

Dans l'exemple ci-dessus, nous avons ce qui suit :

  • Les trois premiers référentiels répertoriés ci-dessus sont les principaux référentiels CentOS :base, extras et mises à jour
  • dockerrepo est un référentiel tiers qui contient des packages liés au conteneur Docker
  • mongodb-org-3.0 est un référentiel tiers qui contient des packages liés à MongoDB.

Lorsque vous effectuez une mise à jour yum comme indiqué ci-dessous, tous les packages déjà installés sur votre système seront mis à niveau vers la dernière version disponible à partir de tous les référentiels ci-dessus.

yum update

Si vous avez déjà installé mongodb sur votre système, et lorsque vous exécutez la "mise à jour yum" ci-dessus, il mettra également à niveau les packages mongodb vers la dernière version.

Si vous ne souhaitez pas mettre à niveau mongodb lorsque vous effectuez une "mise à jour yum", vous devez l'exclure lors de la mise à jour yum, comme expliqué dans la section suivante.

De plus, si vous souhaitez savoir à quel référentiel appartient un package particulier, afin de pouvoir exclure ce référentiel de la mise à niveau, utilisez la commande yum info comme indiqué ci-dessous.

yum info package-name | grep -i repo

Si vous débutez avec la commande yum :15 exemples de commande Linux Yum - Installer, désinstaller, mettre à jour les packages

2. Exclure un référentiel de Yum Update (Méthode 1)

Vous pouvez utiliser l'option –disablerepo=repository-name avec yum update. Cela ne mettra pas à niveau les packages appartenant au nom de référentiel donné.

Dans l'exemple suivant, yum update mettra à niveau tous les packages installés, à l'exception de tous les packages installés appartenant au référentiel MongoDB.

yum --disablerepo=mongodb-org-3.0 update

Vous pouvez également spécifier l'option –disablerepo à la fin après la mise à jour de yum. Ce qui suit exclura les packages appartenant au référentiel Docker lors de la mise à jour de yum.

yum update --disablerepo=dockerrepo

Vous pouvez obtenir le nom exact du référentiel que vous souhaitez exclure en consultant la 1ère colonne de la sortie de la commande "yum repolist".

3. Exclure un référentiel de la mise à jour Yum à l'aide du paramètre activé (méthode 2)

Au lieu d'exclure un référentiel spécifique de la ligne de commande yum update, vous pouvez exclure définitivement un package de yum update en définissant le paramètre enabled sur 0 dans le fichier de configuration du référentiel.

Les fichiers de configuration du référentiel se trouvent dans le répertoire /etc/yum.repos.d comme indiqué ci-dessous.

# ls -l /etc/yum.repos.d/
-rw-r--r--. 1 root root 1926 Jan 30  2016 CentOS-Base.repo
-rw-r--r--  1 root root  166 Feb 18  2016 docker.repo
-rw-r--r--  1 root root  142 Feb  5  2016 mongodb-org-3.0.repo
..
..

Pour exclure le référentiel mongodb, ouvrez le fichier de référentiel mongodb et définissez la valeur de activé sur 0, comme indiqué ci-dessous.

# vi /etc/yum.repos.d/mongodb-org-3.0.repo 
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=0

Maintenant, si vous effectuez un repolist yum, vous ne verrez pas le référentiel MongoDB dans la sortie.

# yum repolist
repo id           repo name              status
base              CentOS-6 - Base        6,575
extras            CentOS-6 - Extras         62
updates           CentOS-6 - Updates     1,622
dockerrepo        Docker Repository          2
repolist: 8,261

Cela signifie également que même si des packages liés à mongodb sont installés sur votre système, lorsque vous effectuez la "mise à jour yum" suivante, les packages mongodb ne seront plus mis à niveau.

yum update

4. Exclure plusieurs référentiels de la ligne de commande de mise à jour Yum

Vous pouvez également exclure plusieurs référentiels lors de la mise à jour de yum en spécifiant les référentiels délimités par des virgules, comme indiqué ci-dessous.

L'exemple suivant exclura MongoDB, Docker et le référentiel EPEL lors de la mise à jour de yum.

yum update --disablerepo=mongodb-org-3.0,dockerrepo,epel

5. Activer un référentiel pour la mise à jour de Yum

Si vous avez désactivé un référentiel en définissant « enabled=0 » dans le fichier de configuration du référentiel, vous pouvez toujours l'inclure lors de votre « mise à jour yum » en utilisant l'option –enablerepo comme indiqué ci-dessous.

L'exemple suivant inclura les packages du référentiel MongoDB lors de la "mise à jour yum", même si ce référentiel est désactivé dans le fichier de référentiel sous le répertoire /etc/yum.repos.d/.

yum update --enablerepo=mongodb-org-3.0

6. Combinez EnableRepo et DisableRepo dans Yum Update

Vous pouvez également faire preuve de créativité en combinant les options enablerepo et disablerepo.

Par exemple, la commande yum update suivante ne mettra à niveau que les packages du référentiel MongoDB.

yum update --disablerepo=* --enablerepo=mongodb-org-3.0

Dans ce qui précède :

  • –disablerepo=* Cela indique que tous les référentiels doivent d'abord être désactivés et ne pas être pris en compte pour la mise à jour de yum
  • –enablerepo=mongo Cela indique que seul le référentiel MongoDB doit être pris en compte lors de la mise à jour de yum (lorsqu'il est combiné avec l'option de désactivation ci-dessus)

Linux
  1. Comment ajouter un référentiel Yum

  2. Comment mettre en miroir un référentiel sous Linux

  3. Comment importer une clé qui signe un référentiel pour Dnf/yum ?

  4. Comment nettoyer le cache yum sur CentOS ?

  5. Comment créer un référentiel yum dans CentOS/RHEL

Préparation de l'application des mises à jour sur Red Hat Linux

Comment mettre à jour CentOS

Comment j'ai construit une conférence OpenShift interactive pour la Red Hat Academy

10 exemples d'exclusion Yum pour ignorer les packages pour la mise à jour Linux Yum (Comment exclure les mises à jour du noyau Yum)

Comment activer le référentiel Remi sur Fedora/Red Hat pour installer la pile LAMP

8 référentiels tiers YUM pour CentOS et RHEL