el cliente de yum no ve nuevos paquetes aunque el servidor está actualizado

16

Tenemos un servidor yum interno que contiene varios repositorios (copias del repositorio de RHEL, programas creados internamente, etc.). Nuestros sistemas internos están protegidos de Internet, por lo que solo pueden usar nuestro servidor interno.

Para probar los parches antes de llevarlos a producción, tenemos un stablerepositorio habilitado de forma predeterminada. Cualquier actualización se pone en el -latestrepositorio. Cuando -latestparcheamos servidores, usaremos ese -repo para construir una nueva línea de base y probarla en algunos servidores. Una vez probados, hacemos de esa línea base la nueva stable. Los -latestrepos están deshabilitados por defecto.

Uno de los repositorios se usa para algunos paquetes que recuperamos de epel, rpmforge, etc. Tenemos un script que sincroniza solo los paquetes que queremos con cualquier dependencia que necesiten. El repositorio se reconstruye todas las noches con createrepo después de sincronizar los paquetes. Como estos paquetes no han sido probados, terminan en el int-optional-latestrepositorio, que generalmente está deshabilitado. Si un servidor necesita un paquete de ese repositorio, lo instalaremos usando enable-repo=int-optional-latest.

Hoy un compañero de trabajo estaba tratando de instalar perl-Excel-Writer-XLSX en un servidor. El servidor no encontró el paquete. Intenté reconstruir el repositorio usando createrepo y agarré los archivos de repositorio para asegurarme de que el archivo estaba allí. Era. También verifiqué que el archivo existía dentro del repositorio usando

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

También borré el caché de metadatos en el lado del cliente, usando

sudo yum clean expire-cache

A pesar de esto, el cliente siguió afirmando que el paquete no existía en el servidor.

No creo que el problema esté en el lado del servidor, porque cuando intenté hacer una búsqueda desde otra máquina, encontró el paquete. Verifiqué que los archivos de repositorio eran correctos y que el nombre se yum.example.comresolvió en la misma dirección IP en ambos servidores; sin embargo, uno de ellos puede encontrar el paquete y el otro no.

Jenny D
fuente

Respuestas:

14

Comencé a buscar en los registros del servidor web en el servidor yum, y no encontré ningún resultado de la IP para el cliente que no pudo encontrar los archivos. Al principio no entendí esto, ya que había limpiado el caché de los clientes. Así que hice otra limpieza de caché, esta vez usando

sudo yum -v clean expire-cache

Cuando se ejecuta con -v, enumera qué repositorios limpia y int-optional-latestno estaba en la lista. Supongo que esto se debió a que el repositorio está deshabilitado por defecto. Hice otro borrado de caché, esta vez usando

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

Después de eso, probé otro

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

que funcionó perfectamente

Jenny D
fuente
El comando debe estar con una X al final del nombre del paquete como: sudo yum enable-repo = int-optional-latest install perl-Excel-Writer-XLSX
Chris Madden
Gracias, @ChrisMadden! Cortar y pegar-error, obviamente ...
Jenny D
1
sudo yum -v clean expire-cache

No funcionó para mí. Sin embargo, pude hacerlo funcionar con

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

y

yum repolist

muestra que está actualizado. Espero que esto ayude.

Z_K
fuente