Exclure un dépôt spécifique de la mise à jour YUM

13

Je fais une mise à jour yum à l'échelle du système sur RHEL 5.5 et le référentiel IUS EPEL génère une erreur de dépendance manquante:

php53-mcrypt-5.3.3-4.ius.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-   5.3.3-4.ius.el5.x86_64 (installed)
Error: Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-5.3.3-4.ius.el5.x86_64 (installed)

Existe-t-il un moyen d'exécuter la mise à jour YUM sur tous les autres référentiels en ignorant le référentiel IUS EPEL pour ignorer ce problème de dépendance?

Clarification

J'essaie d'installer les mises à jour à partir du réseau Redhat uniquement. Je ne trouve pas le nom du sudo yum --disablerepo=* --enablerepo=rhel updateréférentiel, je ne peux donc pas faire quelque chose comme, car la version de yum que j'utilise ne prend pas en charge plusieurs référentiels répertoriés ci-après --disablerepo.

Mise à jour

Ma solution de contournement temporaire doit être exécutée sudo yum --exclude=php53* update. Je suis convaincu qu'il existe une meilleure solution. Cette meilleure façon consiste à résoudre le problème réel, j'ai donc également déposé un bogue avec le projet communautaire IUS .

Mise à jour # 2

On dirait que j'ai trouvé le problème avec la dépendance . Je pense toujours qu'il devrait y avoir une solution de contournement viable.

Merci!

Robin
la source
J'ai mis à jour ma réponse pour tenir compte de votre clarification.
plasmid87

Réponses:

21

Essayez le commutateur de désactivation du dépôt:

--disablerepo=REPONAME

MISE À JOUR

Pour rechercher tous les référentiels actuellement "connus" (activés et désactivés):

yum repolist all

Ensuite, pour trouver le référentiel qui vous dérange pour le package ci-dessus, essayez:

yum list php53-mcrypt-5.3.3-4.ius.el5.x86_64 --showduplicates

Cela montrera alors lequel de vos référentiels fournit le package ci-dessus (vous verrez également «installé» dans la liste, pour afficher les packages installés localement).

Essayez à nouveau le commutateur de désactivation une fois que vous connaissez le référentiel à l'aide du commutateur de désactivation du référentiel.

yum update --disablerepo=[from above]

Si vous ne suivez pas les étapes ci-dessus pour isoler le référentiel que vous souhaitez omettre, essayez de consulter /etc/yum.repos.d/ , qui est l'emplacement par défaut de RHEL pour les définitions de référentiel. Une fois dans ce répertoire, localisez tous les fichiers de base de base RHEL et mises à jour non standard et incluez enabled = 0 , par exemple,

[repo]
enabled=0

J'espère que cela t'aides.

plasmid87
la source
Cela pourrait fonctionner si je pouvais spécifier plusieurs référentiels. J'ai essayé --disablerepo=epel --disablerepo=iuset --disablerepo=epel,ius.
Robin
yum repolist allmontre que seuls les dépôts suivants sont activés: epel, ius et rhel-x86_64-server-5. Votre --showduplicatescommande affiche ce package tel qu'il est installé à partir du référentiel ius. J'ai donc essayé ce qui suit sudo yum --disablerepo=* --enablerepo=rhel-x86_64-server-5 updateet il génère toujours une erreur de dépendance sur le même package. J'ai également essayé de désactiver le repos en modifiant le enabled=0paramètre sous /etc/yum.repos.d/
Robin
J'imagine que lorsque vous avez installé le référentiel IUS, il a été configuré pour être activé par défaut. Essayez ceci à la place: en sudo yum update --disablerepo=iussupposant que tous les autres dépôts sont activés par défaut. Sinon, essayez simplement sudo yum update --exclude=php53-mcrypt-5.3.3-4.ius.el5.x86_64d'ignorer complètement ce package.
plasmid87
Aucune de ces options ne fonctionne. Il me manque quelque chose.
Robin
Je ne peux qu'imaginer alors que quelque chose d'autre a besoin de ce package mis à niveau dans le cadre du processus de mise à jour. Si vous l'exécutez, sudo yum deplist php53-mcrypt-5.3.3-4.ius.el5.x86_64il vous montrera toutes les dépendances et les fournisseurs pour ce package particulier. D'après mon expérience avec les packages PHP et RHEL, c'est un problème courant. Ne voulant pas dévier du problème, mais j'ai trouvé que Remi fournissait les meilleurs packages pour PHP, je n'ai jamais eu de problème de dépendance avec PHP après être passé à leurs dépôts.
plasmid87
1

la façon la plus simple de le faire est de commenter le linux avec votre dépôt indésirable dans /etc/yum.repos.d/

fromnaboo
la source
1

Vous pouvez désactiver plusieurs référentiels sur la ligne de commande yum:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 --disablerepo=myrepo3

Cependant, si vous le faites, vous devez explicitement activer le dépôt que vous souhaitez:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 \
           --disablerepo=myrepo3 --enablerepo=TheRepoIWant
LukeInDC
la source