¿Cómo obtengo yum para ver las actualizaciones de un repositorio local sin limpiar el caché?

19

He configurado un repositorio local de yum que utilizo para instalar compilaciones de prueba. Para propósitos de prueba, mis paquetes son versionados por <svn version number>.<date>.<time>(ej.12345.20110908.150404

El problema es que, una vez que hago un nuevo RPM, lo copio al directorio del repositorio y lo ejecuto createrepo $REPO_DIR, yum no ve que el nuevo RPM esté 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

Puedo ver las actualizaciones y tomarlas si ejecuto yum clean ally luego volver a buscar los metadatos, pero creo que esto solo significa que necesito hacer algo más desde el repositorio, ya que no tengo que hacer eso para otros repositorios de yum.

¿Cómo necesito configurar mi repositorio local para que solo necesite ejecutar yum updatedesde el cliente sin tener que limpiar mi caché yum?

Mate
fuente

Respuestas:

24

Puede ejecutar "yum clean expire-cache", que es una forma mucho más eficiente de decirle a yum que verifique los repositorios. ... la otra cosa que hacer sería cambiar el valor de metadata_expire para el repositorio local. (ver man yum.conf).

James Antill
fuente
¿Hay alguna manera de expirar-caché solo repositorio específico?
myroslav
1
La única forma fácil de hacerlo es --disablerepo = * --enablerepo = myrepo, otherrepo ... aunque puedes crear un alias si es algo que harás mucho.
James Antill
11

Intente agregar la siguiente línea en /etc/yum.conf en clientes Yum:

metadata_expire = 1m

El siguiente comando muestra más información:

man yum.conf

FYI. CentOS 5 tiene el parámetro comentado. CentOS 6.2 tiene 90m para el valor.

2oahu.com
fuente
Esto es algo viejo, pero me encontré con esto. Puede establecer este valor para un único repositorio editando el archivo /etc/yum.repos.d/my.repo.
jwm
3

yum clean metadata limpia solo los nombres en caché y demás, después de lo cual yum vuelve a cargar su idea de lo que está disponible.

vonbrand
fuente
0

Solo tuve el mismo problema, intente:

mmm limpiar todo

Jobwat
fuente
1
Por favor lea la pregunta cuidadosamente. Creo que estaba buscando un método alternativo donde no tuviera que borrar el caché.
slm
Dios, tienes razón: |
Jobwat
0

yum's --enablerepo = localrpmrepo es la opción que busca. entonces

yum --enablerepo=localrpmrepo clean metadata

reemplace localrpmrepo con su nombre de repos

Neil
fuente
No, en este caso, el problema es que cree que el caché sigue siendo válido y no busca actualizaciones.
Falcon Momot
Yo era capaz de actualizar un solo repositorio usando esta declaración y otro: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. ¡Solo haré una función bash y terminaré!
bgStack15