Apt-Get usando Apt-Cacher NG no puede recuperar paquetes con falta de coincidencia de suma hash

8

Tengo una máquina que usa Apt-Cacher NG ejecutándose en otra máquina como proxy de almacenamiento en caché.

Cuando intento ejecutar sudo apt-get updateme sale el siguiente error:

W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_main_source_Sources  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_main_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_universe_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_main_binary-i386_Packages  Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.

El directorio /etc/apt/sources.list.d está vacío.

Para solucionarlo, ya he intentado lo siguiente sin éxito:

Solución 1:

sudo rm -fr /var/lib/apt/lists
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get autoclean

Solución 2:

sudo apt-get update -o Acquire::http::No-Cache=True

¿Cualquier sugerencia?

Marco Lackovic
fuente
He visto este comportamiento a veces. Ejecutar sudo apt-get update varias veces consecutivamente ayudó en este caso, pero no sé por qué, nunca investigé este problema más de cerca.
oddfellow
1
Esto sucede también en máquinas que no usan Apt-Cacher NG. En esos casos, la Solución 1 soluciona el problema.
Marco Lackovic

Respuestas:

11

Sugeriría cambiar de APT-cacher-ng y consultar Squid-deb-proxy.

APT-cacher-ng ha demostrado ser muy defectuoso en mi experiencia y toneladas de informes de errores son sobresalientes. Solo recientemente se ha propuesto volver a desbloquearse en Debian ahora que se han eliminado algunos errores importantes. Para Ubuntu, me cambié a Squid-deb-proxy hace mucho tiempo y no me arrepiento. Es una gran alternativa y el mejor APT-cacher que he encontrado.

Para Squid-deb-proxy, simplemente instale el paquete squid-deb-proxyy agregue los dominios de destino permitidos en un nuevo archivo /etc/squid-deb-proxy/mirror-dstdomain.acl.d. Como beneficio adicional, los clientes pueden descubrir automáticamente máquinas habilitadas para el almacenamiento en caché en la red local al squid-deb-proxy-clientinstalar el paquete.

gertvdijk
fuente
6

Puede solucionar esto ahora ejecutando:

http://your-cache-server:3142/acng-report.html?abortOnErrors=aOe&byPath=bP&byChecksum=bS&truncNow=tN&incomAsDamaged=iad&purgeNow=pN&doExpire=Start+Scan+and%2For+Expiration&calcSize=cs&asNeeded=an#bottom

Esto eliminará todos los archivos rotos en su caché.

Para hacer este permananet, eche un vistazo a https://www.unix-ag.uni-kl.de/~bloch/acng/html/maint.html#auto-cleanup

Básicamente, puede configurar el cron de limpieza de caché diario para hacer una coincidencia de suma de comprobación completa en todo su caché. Esto detectará todos los tamaños incorrectos y cualquier otro daño y limpiará esos archivos. Edité /etc/cron.daily/apt-cacher-ngy agregué lo siguiente después de los comentarios:

export ACNGREQ="abortOnErrors=aOe&byPath=bP&byChecksum=bS&truncNow=tN&incomAsDamaged=iad&purgeNow=pN&doExpire=Start+Scan+and%2For+Expiration&calcSize=cs&asNeeded=an"

Esto es equivalente a hacer clic en todas las opciones de caducidad en la página de mantenimiento, excepto "Omitir verificaciones de encabezado ..."

Mark Porter
fuente
1
¡Esta fue la única respuesta que eliminó el error en mis sistemas!
Jan
Creo que puede necesitar un ?al comienzo de su cadena de exportación.
TafT
3

Sugerencia 1

sudo rm /var/lib/apt/lists/*gzip*
sudo rm /var/lib/apt/lists/partial/*gzip*
sudo apt-get update

Sugerencia 2

sudo rm -f /var/cache/apt/partial/*
sudo rm -f /var/cache/apt/*.deb
sudo apt-get update

Sugerencia 3

sudo touch /etc/apt/apt.conf.d/no-cache
sudo nano /etc/apt/apt.conf.d/no-cache

Y pegue esto en:

Acquire::http {No-Cache=True;};

Ahora intenta:

sudo apt-get update
SirCharlo
fuente
1
Gracias pero ninguno de los tres funcionó.
Marco Lackovic
¡Funcionó como un encanto estableciendo no-cache en verdadero! ¡Un millón de gracias! :)
mhenrixon
3

He estado luchando MUY frecuentemente (1 de cada 50 descargas) con errores de "Hash Sum Mismatch" y "Invalid Header" usando apt-cacher-ngUbuntu Precise 12.04 LTS desde el día de la actualización de la distribución. Ubuntu Precise utiliza la apt-cacher-ngversión 0.7.2-1, hasta la fecha hay MUCHAS correcciones de errores en este software, y la versión más reciente: 0.7.26-1 es mucho más estable.

He instalado la versión Ubuntu Quantal de apt-cacher-ngpackages.ubuntu.com, que es la versión 0.7.26-1.

Recomiendo encarecidamente tomar la versión futura / de prueba apt-cacher-nge instalar manualmente este paquete más nuevo.

Ron Allred
fuente
1

Mis actualizaciones serían siempre casi éxito - 95% de los archivos descargaría a través del proxy, dejando tal vez los últimos ~ 100 archivos falla con un 'hash de suma desajuste', y ninguna de las soluciones propuestas nunca funcionaría.

Y entonces, justo para las muecas-y-risas, me mudé 01proxya 01proxy.ng, RAN aptitude update, a continuación, update-managery seleccionado la distribución a la actualización. Se procedió a descargar los archivos restantes de archive.ubuntu.com (~ 70M en lugar de ~ 1G), y el resto de la actualización se realizó sin problemas. Después de reiniciar, moví 01proxy.ng de nuevo a 01proxy, y todo volvió a la normalidad.

Lo he hecho dos veces ahora, una vez en el servidor proxy en sí y otra en un cliente, y ambos tuvieron un éxito maravilloso después de fallar (en esa marca del 95%) al pasar por el proxy.

usuario117247
fuente
1

Extracción de la /var/cache/apt-cacher-ng/download.virtualbox.orgcarpeta me ayudó a solucionar el problema con Failed to fetch ... Hash Sum mismatchel apt-get updateque impidió virtualbox-4.3el paquete del servidor Oracle.

Adam Ryczkowski
fuente
0

Sugerencia 4

La ejecución sudo apt-get update && sudo apt-get upgrade -yen el servidor Apt-Cacher NG puede solucionar el problema. Debe hacerlo cada vez que se produce el problema.

Sugerencia 5

A veces, el problema está en el espejo: cambiar el espejo /etc/apt/sources.list, tanto en el servidor como en los clientes, puede solucionar este problema.

Marco Lackovic
fuente
0

También puede eliminar toda la carpeta del repositorio

rm -r /var/cache/apt-cacher-ng/<repository_folder>

donde se almacena el paquete con la falta de coincidencia de suma hash.

En la próxima solicitud de apt, apt-cacher-ng creará automáticamente una nueva carpeta con una suma de hash limpia.

panticz.de
fuente