GNU/Linux >> Tutoriales Linux >  >> Linux

Problema "El archivo de metadatos no coincide con la suma de verificación" cuando Yum instala o actualiza el paquete

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, in 
main()
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


Linux
  1. ¿La asignación de metadatos con Avconv no funciona?

  2. ¿Por qué `zip` en un bucle For funciona cuando el archivo existe, pero no cuando no existe?

  3. ¿Puede leer (2) devolver cero cuando no está en EOF?

  4. Agregar una línea a un archivo solo si aún no existe

  5. El comando sed de Linux no cambia el archivo de destino

Qué hacer cuando ve el error "El repositorio no tiene un archivo de versión" en Ubuntu

La coincidencia de patrones no funciona en el script bash

¿Por qué wget'ing una imagen me da un archivo, no una imagen?

¿Adónde van los metadatos cuando guarda un archivo?

cuando se produce el error 'Error:Nada que hacer' en la instalación a través de yum?

¿Por qué rm manual dice que podemos ejecutarlo sin ningún argumento, cuando esto no es cierto?