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)