¿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?

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).


¿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.


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.


0

Solo tuve el mismo problema, intente:

mmm limpiar todo


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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.