Nous avons un serveur yum interne contenant plusieurs repos (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 référentiel stable
qui est activé par défaut. Toutes les mises à jour sont mises dans le -latest
repo. Lorsque nous patcherons des serveurs, nous utiliserons cela -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
. Le -latest
les repos 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. Comme ces packages ne sont pas testés, ils se retrouvent dans le int-optional-latest
repo qui est généralement désactivé. Si un serveur a besoin d'un package de ce dépôt, nous l'installerons à l'aide de 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 repo étaient corrects et que le nom yum.example.com
résolu à la même adresse IP sur les deux serveurs - mais l'un d'eux peut trouver le package et l'autre pas.
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 le int-optional-latest
n'était 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é.
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.