Apt-Get utilisant Apt-Cacher NG ne parvient pas à récupérer les packages avec une différence de somme de hachage

8

J'ai une machine qui utilise Apt-Cacher NG fonctionnant sur une autre machine en tant que proxy de mise en cache.

Lorsque j'essaie d'exécuter, sudo apt-get updatej'obtiens les erreurs suivantes:

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.

Le répertoire /etc/apt/sources.list.d est vide.

Pour résoudre ce problème, j'ai déjà essayé ce qui suit sans succès:

Solution 1:

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

Solution 2:

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

Toute suggestion?

Marco Lackovic
la source
J'ai vu ce comportement parfois. L'exécution de la mise à jour sudo apt-get plusieurs fois consécutivement a aidé dans ce cas, mais je ne sais pas pourquoi, je n'ai jamais étudié ce problème de plus près.
oddfellow
1
Cela se produit également sur les machines qui n'utilisent pas Apt-Cacher NG. Dans ces cas, la solution 1 résout le problème.
Marco Lackovic

Réponses:

11

Je suggérerais de quitter APT-cacher-ng et de vérifier Squid-deb-proxy.

APT-cacher-ng s'est avéré être très bogué selon mon expérience et des tonnes de rapports de bogues sont exceptionnels. Ce n'est que récemment qu'il a été proposé à nouveau d'être débloqué dans Debian maintenant que certains bugs majeurs sont supprimés. Pour Ubuntu, je suis passé à Squid-deb-proxy il y a longtemps et je ne le regrette pas. C'est une excellente alternative et le meilleur APT-cacher que j'ai trouvé.

Pour Squid-deb-proxy, installez simplement le package squid-deb-proxyet ajoutez les domaines de destination autorisés dans un nouveau fichier dans /etc/squid-deb-proxy/mirror-dstdomain.acl.d. En prime, les clients peuvent découvrir automatiquement les machines activées pour la mise en cache dans le réseau local en squid-deb-proxy-clientinstallant le package.

gertvdijk
la source
6

Vous pouvez résoudre ce problème dès maintenant en exécutant:

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

Cela supprimera tous les fichiers cassés dans votre cache.

Pour rendre cette permananet, jetez un œil à https://www.unix-ag.uni-kl.de/~bloch/acng/html/maint.html#auto-cleanup

Fondamentalement, vous pouvez configurer le cron de nettoyage quotidien du cache pour effectuer une correspondance de somme de contrôle complète sur l'ensemble de votre cache. Cela va attraper toutes les mauvaises tailles et toute autre corruption et nettoyer ces fichiers. J'ai modifié /etc/cron.daily/apt-cacher-nget ajouté ce qui suit après les commentaires:

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

Cela équivaut à cliquer sur toutes les options d'expiration sur la page de maintenance à l'exception de "Ignorer les vérifications d'en-tête ..."

Mark Porter
la source
1
C'était la seule réponse qui s'est débarrassée de l'erreur sur mes systèmes!
Jan
Je pense que vous pourriez avoir besoin d'un ?au début de votre chaîne d'exportation.
TafT
3

Suggestion 1

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

Suggestion 2

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

Suggestion 3

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

Et collez ceci dans:

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

Maintenant essaye:

sudo apt-get update
SirCharlo
la source
1
Merci mais aucun des trois n'a fonctionné.
Marco Lackovic
Fonctionné comme un charme définissant no-cache sur true! Mille mercis! :)
mhenrixon
3

Je me bats TRÈS fréquemment (1 sur 50 téléchargements) avec des erreurs "Hash Sum Mismatch" et "Invalid Header" apt-cacher-ngsur Ubuntu Precise 12.04 LTS depuis le jour de la mise à niveau de la distribution. Ubuntu Precise utilise la apt-cacher-ngversion 0.7.2-1, à ce jour il y a BEAUCOUP de corrections de bogues pour ce logiciel, et la version plus récente: 0.7.26-1 est beaucoup plus stable.

J'ai installé la version Ubuntu Quantal apt-cacher-ngde packages.ubuntu.com, qui est la version 0.7.26-1.

Je recommande fortement de saisir la future version / test de apt-cacher-nget d'installer manuellement ce nouveau package.

Ron Allred
la source
1

Mes mises à niveau réussiraient toujours presque - 95% des fichiers seraient téléchargés via le proxy, laissant peut-être les ~ 100 derniers fichiers échouer avec une `` incompatibilité de somme de hachage '', et aucune des solutions proposées ne fonctionnerait jamais.

Et puis, juste pour les sourires et les rires, je suis passé 01proxyà 01proxy.ng, ai couru aptitude update, puis j'ai update-managersélectionné la mise à niveau de la distribution. Il a procédé au téléchargement des fichiers restants sur archive.ubuntu.com (~ 70M plutôt que ~ 1G), et le reste de la mise à niveau s'est bien déroulé. Après le redémarrage, j'ai déplacé 01proxy.ng vers 01proxy, et tout était revenu à la normale.

Je l'ai fait deux fois maintenant, une fois sur le serveur proxy lui-même et une fois sur un client, et les deux ont réussi à merveille après avoir échoué (à ce niveau de 95%) en passant par le proxy.

user117247
la source
1

Retrait du /var/cache/apt-cacher-ng/download.virtualbox.orgdossier ne me aider à résoudre le problème avec Failed to fetch ... Hash Sum mismatchle apt-get updatequi empêche virtualbox-4.3package à partir du serveur Oracle.

Adam Ryczkowski
la source
0

Suggestion 4

L'exécution sudo apt-get update && sudo apt-get upgrade -ysur le serveur Apt-Cacher NG peut résoudre le problème. Vous devez le faire chaque fois que le problème se produit.

Suggestion 5

Parfois, le problème est sur le miroir: la modification du miroir /etc/apt/sources.list, à la fois sur le serveur et les clients, peut résoudre ce problème.

Marco Lackovic
la source
0

Vous pouvez également supprimer l'intégralité du dossier du référentiel

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

où le package avec la différence de somme de hachage est stocké.

A la prochaine demande d'apt, un nouveau dossier avec une somme de hachage propre sera automatiquement créé par apt-cacher-ng.

panticz.de
la source