El problema
Escenario 1:
El usuario no puede realizar "yum install oracle-rdbms-server-11gR2-preinstall".
Yum intenta descargar los últimos metadatos ("http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/repodata/primary.xml.gz") y lo rechaza con el mensaje de error "[ Errno -1] El archivo de metadatos no coincide con la suma de verificación”. Después de esto, yum prueba el siguiente espejo donde encuentra el mismo error y va al siguiente espejo y así sucesivamente hasta que ha probado todos los espejos y termina con el error "No hay más espejos para probar".
# yum install oracle-rdbms-server-11gR2-preinstall Loaded plugins: refresh-packagekit, security ol6_UEK_base | 951 B 00:00 ol6_UEK_base/primary | 686 kB 00:09 ol6_UEK_base 29/29 ol6_UEK_latest | 1.2 kB 00:00 ol6_ga_base | 1.1 kB 00:00 ol6_ga_base/primary | 2.9 MB 00:34 ol6_ga_base 8029/8029 ol6_latest | 1.4 kB 00:00 ol6_latest/primary | 22 MB 04:48 http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/repodata/primary.xml.gz: [Errno -1] Metadata file does not match checksum Trying other mirror. ol6_latest/primary | 22 MB 04:42 http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/repodata/primary.xml.gz: [Errno -1] Metadata file does not match checksum Trying other mirror. Error: failure: repodata/primary.xml.gz from ol6_latest: [Errno 256] No more mirrors to try.
Escenario 2:
La ejecución del script uln_mirror también falló con el error "El archivo de metadatos no coincide con la suma de verificación"
#/usr/bin/uln-yum-mirror --snip-- rhnplugin.py:410:_getFile:RepoError: failed to retrieve repodata/update=einfo.xml.gz from ol6_x86_64_latest error was [Errno -1] Metadata file does not match checksum : Traceback (most recent call last): File "/usr/bin/reposync", line 352, inmain() File "/usr/bin/reposync", line 256, in main resultfile =3D repo.retrieveMD(ftype) File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1571, i=n retrieveMD : return self._retrieveMD(mdtype) File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1654, i=n _retrieveMD : size=3Dthisdata.size) File "/usr/share/yum-plugins/rhnplugin.py", line 410, in _getFile : self.id, e) RepoError: failed to retrieve repodata/updateinfo.xml.gz from ol6_x86_= 64_latest :error was [Errno -1] Metadata file does not match checksum
La solución
El servidor yum contiene metadatos y suma de verificación para los metadatos. Después de descargar los metadatos y la suma de verificación, yum client compara los dos para asegurarse de que sean consistentes. Debería haber problemas con el almacenamiento en caché de los metadatos, lo que lleva al error donde yum intenta descargar los metadatos más recientes.
Opción 1
En primer lugar, intente purgar todos los cachés de yum:
# yum clean all # rm -rf /var/cache/yum/* # yum repolist
Opción 2
Limpiar metadatos:
# yum clean metadata
Opción 3
Edite el archivo /etc/yum.conf y agregue una línea "http_caching=packages ” como se muestra a continuación:
# vi /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=3 http_caching=packages # This is the default, if you make this bigger yum won't see if the metadata # is newer on the remote and so you'll "gain" the bandwidth of not having to # download the new metadata and "pay" for it by yum not having correct # information. # It is esp. important, to have correct metadata, for distributions like # Fedora which don't keep old packages around. If you don't like this checking # interupting your command line usage, it's much better to have something # manually check the metadata once an hour (yum-updatesd will do this). # metadata_expire=90m # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
1. Simplemente espere a que se agote el tiempo de espera de la memoria caché http.
2. Para cada archivo, emita un 'wget' con la opción sin caché:
# wget --no-cache http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/repodata/primary.xml.gz
3. Configure yum temporalmente para que no use versiones de archivos en caché. Edite /etc/yum.conf y agregue la siguiente línea:
http_caching=none