435 votes

Difficulté à télécharger la liste des paquets en raison d'une erreur "Hash sum mismatch".

Lorsque je vérifie les mises à jour, j'obtiens une erreur "Failed To Download Repository Information".

C'est ce qui apparaît dans les détails :

W: Failed to fetch gzip:/var/lib/apt/lists/partial/us.archive.ubuntu.com_ubuntu_dists_natty_main_source_Sources  Hash Sum mismatch, 
E: Some index files failed to download. They have been ignored, or old ones used instead.

25voto

Joshua McKinnon Points 12379

Cela peut se produire lorsque votre miroir n'est pas à jour ou qu'il sert des erreurs à cause d'une surcharge. Vous pouvez soit attendre un peu et réessayer, soit passer à un autre miroir :

13voto

Michael Fey Points 873

Si vous êtes derrière un proxy, créez un fichier nommé 99fixbadproxy sur /etc/apt/apt.conf.d/ :

sudo gedit /etc/apt/apt.conf.d/99fixbadproxy

Collez ceci dans 99fixbadproxy et le sauvegarder :

Acquire::http::Pipeline-Depth 0;
Acquire::http::No-Cache true;
Acquire::BrokenProxy    true;

Maintenant, exécutez la commande de mise à jour :

sudo apt-get update

6voto

Trey Points 162

Le site réponse acceptée fonctionnera rarement si vous avez un problème avec le CDN (content delivery network - les caches/miroirs dans le monde entier contenant les listes et les paquets apt). Cela fonctionnera si a) vous utilisez un PPA ou des miroirs locaux ou b) n'ont qu'une seule erreur à résoudre.

Remarque : si vous avez le message d'erreur spécifique indiqué dans le journal de la question ci-dessus, la réponse acceptée devrait toujours fonctionner. Mais il y a plusieurs autres questions qui ont été fermées en tant que doublons de celle-ci où la réponse acceptée est insuffisante.

Mais ça ne fait pas de mal d'essayer, alors commencez par.. :

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

Ce site pourrait être suffisante pour procéder à sudo apt-get upgrade ou d'autres commandes de suivi.

Mais si ça ne marche pas...

Vous pouvez obtenir des erreurs "Hash sum mismatch" à partir de que aussi. Si cela arrive, exécutez :

sudo apt-get update --fix-missing

Il est possible que même ce produira des erreurs de type "Hash sum mismatch", car le problème peut provenir d'erreurs de contenu réseau transitoires. Si c'est le cas, continuez à réexécuter la commande ci-dessus. --fix-missing jusqu'à ce qu'elle se termine avec succès. Par exemple, comme :

until sudo apt-get update --fix-missing; do echo trying again; done

(Il devrait progresser à chaque exécution de apt-get update --fix-missing ; si les passages successifs ne réduisent pas les erreurs vers zéro, appuyez sur Ctrl-c pour interrompre la boucle. Revenez ensuite au début de cette réponse en supprimant le contenu du fichier /var/lib/apt/lists et réessayer).

Après cela, la mise à jour peut fonctionner, mais pour être sûr, exécutez d'abord apt-get clean comme ça :

sudo apt-get clean
sudo apt-get update

Notez que si vous faites cela en préparation d'un apt-get upgrade Il est possible (voire probable, si vous avez eu suffisamment de discordances pour nécessiter plusieurs mises à jour) que la mise à jour échoue avec des erreurs de type "Hash sum mismatch". Si tel est le cas, ajoutez --fix-missing à votre commande de mise à niveau :

sudo apt-get clean
sudo apt-get upgrade --fix-missing

et réessayez. ( apt-get upgrade avec --fix-missing essaiera également de retenir les paquets qui échouent et de poursuivre les autres, vous devriez donc voir des progrès supplémentaires en exécutant cette opération au moins une fois).

Mais si ça ne marche toujours pas...

Comme les précédents until sudo... vous pouvez obtenir un peu de de progresser davantage en répétant cette commande (toujours précédée de la touche clean ci-dessus), que vous pouvez même automatiser avec la commande

until (sudo apt-get clean; sudo apt-get upgrade --fix-missing --yes); do echo trying again; done

mais, en général, il mettra à jour la plupart des paquets pouvant être mis à niveau la première fois que vous l'exécuterez avec --fix-missing et après cela, ils restent bloqués sur les mêmes paquets, ne progressant plus. À ce moment-là, vous devrez recommencer depuis le début avec la commande sudo rm -rf /var/lib/apt/lists/* et réessayer. Cela vaut la peine d'essayer tout ce processus deux ou trois fois, surtout si vous avez des dizaines ou des centaines de paquets pouvant être mis à niveau.

5voto

Falaina Points 4760

Les commandes suivantes peuvent résoudre votre problème.

sudo rm -R /var/lib/apt/lists/partial/*

et ensuite

sudo apt-get update && sudo apt-get upgrade

cela résoudra votre problème. J'ai également rencontré le même problème mais les commandes ci-dessus ont résolu le problème pour moi. Alors essayez-les.

Référence de la solution

4voto

habibun Points 611

J'ai eu exactement le même problème et toutes les solutions fournies en utilisant le terminal n'ont pas aidé.

Pour moi, c'était en entrant :

Paramètres Logiciels et mises à jour Logiciels Ubuntu : Télécharger à partir de : Change Local a Main Server .

Il commence à recharger les dépôts et à mettre à jour. Quand j'entre :

sudo apt-get update

Après cela, il n'y a pas eu de problème du tout. J'utilise Ubuntu 14.04.4 LTS.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X