le client yum ne voit pas de nouveaux packages bien que le serveur soit mis à jour

16

Nous avons un serveur yum interne contenant plusieurs dépôts (copies du repo RHEL, programmes créés en interne, etc.). Nos systèmes internes sont protégés par pare-feu d'Internet, ils ne peuvent donc utiliser que notre serveur interne.

Afin de tester les correctifs avant de les pousser complètement en production, nous avons un stabledépôt qui est activé par défaut. Toutes les mises à jour sont mises dans le -latestréférentiel. Lorsque nous patcherons des serveurs, nous utiliserons -latest-repo pour construire une nouvelle ligne de base et la tester sur quelques serveurs. Une fois testé, nous faisons de cette base la nouvelle stable. Les -latestdépôts sont désactivés par défaut.

L'un des référentiels est utilisé pour quelques paquets que nous récupérons à partir de epel, rpmforge et ainsi de suite. Nous avons un script qui synchronise uniquement les packages que nous voulons avec les dépendances dont ils ont besoin. Le dépôt est reconstruit tous les soirs avec createrepo après la synchronisation des packages. Étant donné que ces packages ne sont pas testés, ils se retrouvent dans le int-optional-latestréférentiel qui est généralement désactivé. Si un serveur a besoin d'un package de ce dépôt, nous l'installerons en utilisant enable-repo=int-optional-latest.

Aujourd'hui, un collègue essayait d'installer perl-Excel-Writer-XLSX sur un serveur. Le serveur n'a pas trouvé le package. J'ai essayé de reconstruire le référentiel à l'aide de createrepo et j'ai salué les fichiers de repodata pour m'assurer que le fichier était là. C'était. J'ai également vérifié que le fichier existait dans le référentiel en utilisant

repoquery -q --repoid=int-optional-latest -l perl-Excel-Writer-XLSX

J'ai également vidé le cache de métadonnées côté client, en utilisant

sudo yum clean expire-cache

Malgré cela, le client a continué à affirmer que le package n'existait pas sur le serveur.

Je ne pense pas que le problème soit du côté serveur, car lorsque j'ai essayé de faire une recherche à partir d'une autre machine, il a trouvé le package. J'ai vérifié que les fichiers de dépôt étaient corrects et que le nom était yum.example.comrésolu avec la même adresse IP sur les deux serveurs - mais l'un d'eux peut trouver le package et l'autre pas.

Jenny D
la source

Réponses:

14

J'ai commencé à fouiller dans les journaux du serveur Web sur le serveur yum, et je n'ai trouvé aucun accès IP pour le client qui n'a pas pu trouver les fichiers. Je n'ai pas compris cela au début, car j'avais vidé le cache des clients. J'ai donc fait un autre nettoyage du cache, cette fois en utilisant

sudo yum -v clean expire-cache

Lorsqu'il est exécuté avec -v, il répertorie les dépôts qu'il nettoie - et ceux qui int-optional-latestn'étaient pas dans la liste. Je suppose que cela était dû au fait que le dépôt était désactivé par défaut. J'ai fait un autre effacement du cache, cette fois en utilisant

sudo yum -v enable-repo=int-optional-latest clean expire-cache

Après cela, j'ai essayé un autre

sudo yum enable-repo=int-optional-latest install perl-Excel-Writer-XLSX

qui a parfaitement fonctionné.

Jenny D
la source
La commande doit être avec un X à la fin du nom du package comme: sudo yum enable-repo = int-optional-latest install perl-Excel-Writer-XLSX
Chris Madden
Merci, @ChrisMadden! Couper-coller-erreur, évidemment ...
Jenny D
1
sudo yum -v clean expire-cache

n'a pas fonctionné pour moi. Cependant, j'ai pu le faire fonctionner avec

sudo touch /etc/yum.repos.d/<your_repo_file>

et

yum repolist

montre qu'il est mis à jour. J'espère que cela t'aides.

Z_K
la source