¿Cómo se repara la actualización de apt-get "Hash Sum discordancia"

23

Tengo un Ubuntu 12.04 virtual box vm que ejemplifico usando Vagrant.

git clone https://github.com/spuder/puppet-gitlab
vagrant up

Tan pronto como se ejecuta el cuadro vagabundo apt-get update, aparece el siguiente error.

...
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_main_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_main_binary-i386_Packages  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_dependencies_binary-i386_Packages  Hash Sum mismatch
W: Failed to fetch http://br.archive.ubuntu.com/ubuntu/dists/precise-updates/restricted/binary-i386/Packages  404  Not Found

Cosas que he intentado solucionar este error.

  • Usé 3 cajas ubuntu 12.04 diferentes de ' http://www.vagrantbox.es '
  • solución sugerida aquí :

    sudo rm -rf / var / lib / apt / lists / *
    sudo apt-get update
    sudo apt-get clean

  • Se eliminaron y volvieron a leer los paquetes de laboratorios de marionetas

También probé sugerencias similares que encontré en las primeras páginas de google. Incluso probé varias computadoras y varias conexiones a Internet.

El hecho de que esto haya afectado múltiples ubm vm's en múltiples conexiones de internet me hace pensar que hay algo mal con el repositorio de ubuntu.

¿De qué otra forma puedo intentar solucionar este problema?

Actualizar

Intenté limpiar '/ var / lib / apt / lists / partial' y ejecutar apt-get clean, luego reemplacé las fuentes en / etc / sources / list usando los espejos amazon sugeridos aquí:

Todavía recibo un error similar

Fetched 18.9 MB in 10s (1,865 kB/s)                                                                                                                                                                            
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_main_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_universe_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_multiverse_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_main_binary-i386_Packages  Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.

Actualización2

Tengo 2 conexiones a internet en casa, ambas dieron el mismo error. Tan pronto como llevé mi computadora portátil a la conexión a Internet de mi trabajo, el problema desapareció.

Todavía tengo curiosidad por entender por qué mi conexión a Internet haría alguna diferencia.

Actualización3

Vea mi respuesta a continuación para obtener una explicación. Mi filtro de internet estaba corrompiendo la descarga.

Reformularé la pregunta ya que todavía no hay respuestas.

¿Hay alguna forma de anular las discrepancias de Hash Sum en apt-get?

Spuder
fuente
¿has limpiado el caché como se sugiere aquí ?
Kiwy
¿Tu distribución también incluye apt-cacher NG? porque parece poco confiable
Kiwy
Encontré ese blog y verifiqué que apt-cache-ng no está instalado. El problema desapareció cuando probé un hipervisor diferente en una conexión a Internet diferente.
Spuder
tal vez una implementación rota de un hash específico en un hipervisor, pero sigue siendo muy extraño.
Kiwy
Tu solución también funcionó para mí. Estaba ejecutando un servidor TinyProxy alojado en AWS y tenía algunos filtros de anuncios configurados. Una vez que eliminé el proxy en apt.conf, todo funciona bien.

Respuestas:

20

Primero, debe comprender por qué se producen errores de discrepancia de suma hash. En general, hay 2 razones:

En primer lugar, algunos repositorios apt usan metadatos comprimidos LZMA (.xz). apt antes de la versión 1.0 no puede descomprimir los archivos LZMA correctamente (a veces) dando el error de falta de coincidencia de suma hash.

Hay dos soluciones para esto:

  1. Dígale a su cliente apt que no use metadatos comprimidos XZ
  2. Actualice apt en su sistema a una versión más reciente que la 1.0

Echa un vistazo a esta publicación de blog que escribí sobre este tema que explica ambas soluciones con mayor detalle.

En segundo lugar, los repositorios APT son intrínsecamente picantes . Los metadatos APT reales tienen errores y su diseño hace que sea imposible que los clientes aptos descarguen los metadatos del repositorio de manera consistente si esto apt-get updatesucede mientras se actualiza el repositorio.

Hay dos soluciones para esto:

  1. Actualice a una versión más nueva de APT y asegúrese de que el repositorio que cree (o quiera usar) sea compatible con la función Adquirir por hash . Esto soluciona el problema en su núcleo, pero no será posible en algunos casos si no controlas el repositorio.
  2. Puede eliminar los metadatos almacenados en caché en su sistema e intentar nuevamente. Para hacer esto, primero ejecute apt-get cleanseguido de rm -rf /var/lib/apt/lists/*. A continuación, corre apt-get update. Esto volverá a descargar todos los metadatos. Si el repositorio al que intenta conectarse no se actualiza mientras está en ejecución apt-get update, estará bien. De lo contrario, tendrá que hacer esto nuevamente.
Joe Damato
fuente
¡Esta es la única solución que funcionó para mí! Gracias por la publicación del blog
Amir Uval,
Usted comentó que es mejor que sea la última versión. ¿Podría decirme cómo actualizarlo?
Amir Uval
¿Cómo utiliza exactamente la función Adquirir por hash? He visto blogs al respecto, pero no dicen en qué archivo exactamente colocarlo y no muestran un ejemplo.
LINUX G33NYUS
6

Lo averigué.

Mis dos computadoras son idénticas en todos los sentidos, excepto que en mi computadora personal instalé un filtro de Internet.

El filtro de internet k9 instaló una extensión de kernel que aparentemente se mete con el tráfico.

Tan pronto como desinstalé el filtro, el problema desapareció.

Todavía estoy investigando si hay alguna forma de apt-get updateignorar los desajustes de suma de hash como una solución alternativa.

Spuder
fuente
En realidad, esto tiene mucho sentido, porque recientemente comencé a tener este problema después de instalar k9; pero no hice la conexión en ese momento. Una solución sería buena, porque obviamente preferiría no deshabilitar el filtro (después de todo, está ahí por una razón).
MuffinTheMan
Sí, pero ¿Cómo podría hacer eso (quitar el filtro), porque tengo el mismo problema de ustedes, pero de todos modos sigo en stucked
Descargue la última versión de k9 de su sitio web. Habrá un desinstalador dentro del paquete de instalación.
Spuder