Comment puis-je obtenir yum pour voir les mises à jour d'un référentiel local sans nettoyer le cache?


19

J'ai mis en place un référentiel local yum que j'utilise pour installer des builds de test. À des fins de test, mes packages sont versionnés par <svn version number>.<date>.<time>( par exemple12345.20110908.150404

Le problème est qu'une fois que j'ai créé un nouveau RPM, que je l'ai copié dans le répertoire du référentiel et exécuté createrepo $REPO_DIR, yum ne voit pas le nouveau RPM comme étant disponible.

$ cd $REPO_DIR
$ ls -1
repodata
package-12345.20110908.150404-1.x86_64.rpm
package-12345.20110908.174329-1.x86_64.rpm

$ createrepo .
# ...snip...

$ rpm -q package
package-12345.20110908.150404-1.x86_64

$ yum list --showduplicates package
Installed Packages
package.x86_64    12345.20110908.150404-1    @repo
Available Packages
package.x86_64    12345.20110908.150404-1    repo

Je peux voir les mises à jour et les récupérer si j'exécute yum clean allpuis récupérer les métadonnées, mais je pense que cela signifie simplement que je dois faire autre chose à partir du référentiel, car je n'ai pas à le faire pour d'autres dépôts yum.

Comment dois-je configurer mon référentiel local pour que je n'aie qu'à exécuter à yum updatepartir du client sans avoir à nettoyer mon cache yum?

Réponses:


24

Vous pouvez exécuter "yum clean expire-cache" qui est un moyen beaucoup plus efficace de dire à yum de vérifier les dépôts. ... l'autre chose à faire serait de changer la valeur metadata_expire pour le dépôt local. (voir man yum.conf).


Existe-t-il un moyen d'expiration-cache uniquement un référentiel spécifique?
myroslav

1
Le seul moyen facile de le faire est --disablerepo = * --enablerepo = myrepo, otherrepo ... bien que vous puissiez créer un alias si c'est quelque chose que vous ferez beaucoup.
James Antill

11

Essayez d'ajouter la ligne suivante dans /etc/yum.conf sur les clients Yum:

metadata_expire = 1m

La commande suivante vous montre plus d'informations:

homme miam.conf

Pour info. CentOS 5 a le paramètre mis en commentaire. CentOS 6.2 a 90m pour la valeur.


C'est un peu vieux, mais je viens de tomber dessus. Vous pouvez définir cette valeur pour un référentiel unique en modifiant le fichier /etc/yum.repos.d/my.repo.
jwm

3

yum clean metadata nettoie uniquement les noms mis en cache et autres, après quoi yum recharge son idée de ce qui est disponible.


0

Juste eu le même problème, essayez:

miam nettoyer tout


1
Veuillez lire attentivement la question. Je crois qu'il cherchait une méthode alternative où il n'avait pas à vider le cache.
slm

Dieu tu as si raison: |
jobwat

0

--enablerepo = localrpmrepo de yum est l'option que vous recherchez. donc

yum --enablerepo=localrpmrepo clean metadata

remplacez localrpmrepo par votre nom de repos


Non, dans ce cas, le problème est certainement qu'il pense que le cache est toujours valide et ne vérifie pas les mises à jour.
Falcon Momot

J'ai pu mettre à jour un seul dépôt en utilisant cette déclaration et l'autre: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. Je vais juste faire une fonction bash et en finir avec ça!
bgStack15
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.