Probleme beim Herunterladen der Paketliste aufgrund eines "Hash Sum Mismatch" -Fehlers


387

Wenn ich nach Updates suche, wird der Fehler "Repository-Informationen konnten nicht heruntergeladen werden" angezeigt.

Dies ist, was unter Details kommt:

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.

Antworten:


459

Entfernen Sie einfach den gesamten Inhalt des /var/lib/apt/listsVerzeichnisses:

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

dann renne:

sudo apt-get update

69
Wenn Sie alle Dateien entfernen, müssen Sie sie erneut herunterladen. Sie können einfach die ungültige Datei entfernen, um diesen Vorgang zu beschleunigen.
Behrang

9
Ich erinnere mich, dass dies auch mit Debian passiert ist. Die Lösung bestand darin, die Repositorys zu wechseln (z. B. von us.ubuntu.com zu XX.ubuntu.com, wobei XX Ihre Landesvorwahl ist) oder zu warten. Die beste Idee wäre, etwas zu warten und es später erneut zu versuchen. Durch das Entfernen der Listen können möglicherweise fehlerhafte Listen behoben werden. Dies ist jedoch selten der Fall.
f.ardelian

4
Alte Frage, aber in einigen Distributionen (wie zB Emdebian) müssen Sie danach " mkdir /var/lib/apt/lists/partial" (natürlich als root), oder Sie können apt-get updateapt nicht " " oder anderweitig verwenden.
Archenoth

7
@AlyssaGono Wenn es sich um einen Ordner handelt, müssen Sie rm mit dem rekursiven Flag wie folgt ausführen: sudo rm -R /var/lib/apt/lists/*Aber selbst das hat bei mir nicht funktioniert.
11.

2
Wir brauchen das Präfix -rf , damit es so aussiehtsudo rm -rf /var/lib/apt/lists/*
Askar

127

Dies ist ein bekanntes Problem und wird für Clients hinter Proxy-Caches noch verstärkt. Einige große Organisationen und ISPs (insbesondere in abgelegenen Teilen der Welt) verfügen über transparente Caches, die Sie möglicherweise nicht kennen.

Das grundlegende Problem besteht darin, dass das Format des Apt-Repositorys den Race-Bedingungen unterliegt, wenn ein Spiegel aktualisiert wird. Dieses Problem betrifft insbesondere Repositorys, die sich schnell ändern, z. B. die Entwicklungsversion.

Sie können den Fortschritt der Fehlerbehebung in diesem Fehler (markieren Sie sich im Fehler als "betrifft mich auch") und in diesem Entwurf nachverfolgen . Beachten Sie jedoch, dass es sich um ein komplexes Problem handelt, für dessen Lösung möglicherweise mehrere Versionen erforderlich sind.


4
Diese Blaupause ist nicht mehr zugänglich; Hier ist eine archivierte Kopie .
Eliah Kagan

16
Dieser Bug existiert auch am Ubuntu 16.04
Scott Stensland

1
Der Fehler wurde als "Fix Released" markiert.

Ich ändere einfach meinen Spiegelstandard auf den besten Server und dessen Arbeit für mich.
Habibun

99

Der einfachste Weg, dies zu beheben, ist:

sudo apt-get clean
sudo apt-get update

12
Nachdem ich die akzeptierte Antwort ausprobiert hatte, hatte ich immer noch die gleichen Fehler. Sofort danach zu versuchen, behebte das Problem
Alex

17
Doing sudo rm -rf /var/lib/apt/lists/*dann sudo apto-get cleandas Problem behoben für mich auch. Keiner arbeitete isoliert.
Cam

3
hilft nicht auf Ubuntu 16.04 ... und der obige Kommentar hilft auch nicht
Scott Stensland

3
sudo apt-get cleanhat mit 16.04 nicht geholfen, aber sudo rm -rf /var/lib/apt/lists/*behoben
sdaffa23fdsf

2
Für mich hat die akzeptierte Antwort nicht funktioniert, aber diese funktionierte (Ubuntu 16.04).
JCasso

52

Die einzige Lösung, die für mich funktioniert hat, ist von unix.stackexchange .

Dies ist darauf zurückzuführen, dass ein bekannter Fehler vorliegt und die Aktualisierung mit einer anderen Komprimierungsmethode erfolgt, sodass die Dateien korrekt geladen werden und die Prüfsumme erfolgreich ist.

Probieren Sie es aus:

sudo rm -rf /var/lib/apt/lists/partial
sudo apt-get update -o Acquire::CompressionTypes::Order::=gz

(danke @brook_hong aus den Kommentaren für den rm Teil)


9
Dies ist die einzige Lösung, die hier für mich funktioniert hat. Vielen Dank.
Cerin

3
Es hat auch bei mir funktioniert. Beachten Sie, dass Sie diesen Befehl nicht immer ausführen müssen. Führen Sie es einfach einmal aus, und dann können Sie "apt-get update" ohne Fehler ausführen.
Dalf

2
Ich habe versucht, die generische Lösung aus verschiedenen Foren zu verwenden, aber dies funktioniert sofort. Danke.
wkhwilo

2
Arbeitete für mich auf Ubuntu 16.04 / Linux Mint
David Okwii

3
Dies ist die einzige Lösung, die für mich funktioniert hat. Ich benutze Ubuntu 16.04
Sunny Shukla

44

Ich hatte immer noch das Problem nach dem Entfernen der Verzeichnisse und zu tun sudo apt-get update.
Nur der folgende Schritt löste mein Problem:

sudo sed -i -re 's/\w+\.archive\.ubuntu\.com/archive.ubuntu.com/g' /etc/apt/sources.list

Ich weiß nicht, ob dies der richtige Weg ist, um das Problem zu beheben ...
Ich habe hier die Lösung gefunden .


13
Man sollte beachten, dass de-part einen Server für Deutschland angibt und dass dieses Skript den lokalen Server durch den Hauptserver ersetzt. Das Aufrufen von Software Sources über die grafische Benutzeroberfläche und das Ändern der Einstellungen dort wäre für viele Benutzer sicherer und umkehrbar. Das Folgende sollte für fast jedes Land funktionieren:sudo sed -i 's/[a-z][a-z].archive.ubuntu.com/archive.ubuntu.com/g' /etc/apt/sources.list
LiveWireBT

23

Dies kann passieren, wenn Ihr Spiegel nicht auf dem neuesten Stand ist oder Fehler aufgrund einer Überlastung auftreten. Sie können entweder eine Weile warten und es erneut versuchen oder zu einem anderen Spiegel wechseln:


2
Warum führt ein nicht aktueller oder überlasteter Server dazu, dass eine Datei mit dem richtigen Namen erfolgreich heruntergeladen wird (in dem Sinne, dass die Verbindung erst beendet wird, wenn alle Bytes gesendet und empfangen wurden), aber beschädigt wird? (Ich behaupte nicht, dass dies nicht der Fall ist. Ich hoffe nur, dass Sie möglicherweise erklären können, warum dies der Fall ist.)
Eliah Kagan

3
@EliahKagan Das Problem ist normalerweise nicht, dass die Datei selbst beschädigt ist, sondern dass es eine (ich vereinfache, aber nicht zu viele) Datendatei und eine Indexdatei gibt, die den Hash (Fingerabdruck) der Datendatei enthält. Wenn die Repositorys auf dem Server aktualisiert werden (geschieht jede Stunde), wird eine Datei nach der anderen aktualisiert. Jetzt kann es vorkommen, dass Ihr Client (apt-get oder ähnlich) auf den Server zugreift, wenn die Datendatei aktualisiert wurde, die Indexdatei jedoch noch nicht aktualisiert wurde (oder umgekehrt). Dann stimmt der Hash nicht mit der Datendatei überein und der Client geht (fälschlicherweise) davon aus, dass die Datendatei beschädigt ist.
Patrick Häcker

1
Der Wechsel des Spiegels hat bei mir funktioniert, als keine der oben genannten Antworten zutrifft.
Mango

10

Wenn Sie sich hinter einem Proxy befinden, erstellen Sie eine Datei mit dem Namen 99fixbadproxyin /etc/apt/apt.conf.d/:

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

Fügen Sie dies ein 99fixbadproxyund speichern Sie es:

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

Führen Sie nun den Update-Befehl aus:

sudo apt-get update

1
Wow, ich habe jede Antwort ausprobiert, es ist seltsam, wie viele verschiedene Probleme zu dem gleichen Symptom führen.
15.

1
Ich bin dieser Antwort sehr
dankbar

5

Die folgenden Befehle können Ihr Problem lösen.

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

und dann

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

es wird dein Problem lösen. Ich hatte auch das gleiche Problem, aber die obigen Befehle lösten das Problem für mich. Also probieren Sie es aus.

Lösungsreferenz


4
Ich habe es nur versucht und es hat nicht funktioniert; Die ersten apt-get updateerstellten Dateien an derselben Stelle erneut in diesem Verzeichnis.
Volker Siegel

3

Ich hatte genau das gleiche Problem und alle mit dem Terminal bereitgestellten Lösungen halfen nicht.

Für mich ging es um:

Einstellungen → Software & Updates → Ubuntu-Software: Herunterladen von: Change LocalnachMain Server .

Es beginnt die Repos neu zu laden und zu aktualisieren. Wenn ich eintrete:

sudo apt-get update

Danach gab es überhaupt kein Problem mehr. Ich benutze Ubuntu 14.04.4 LTS.


1

Ich weiß nicht, ob es die richtige Lösung ist oder nicht, aber ich habe Folgendes getan und die Fehlermeldung ist weg:

Nach dem Eintippen sudo apt-get updatevon terminal werden mir die Namen einiger Pakete angezeigt, die den Fehler verursachen. Dann habe ich Folgendes ausgeführt:

Update Manager (Software-Update) → Einstellungen → Softwarequellen konfigurieren → Andere Software [Registerkarte] → Deaktivieren Sie die Pakete

Nachdem Sie unten auf "Schließen" geklickt haben, hat der Update-Manager erneut automatisch nach Updates gesucht. Die folgende Meldung wurde angezeigt: "Die Software auf diesem Computer ist auf dem neuesten Stand. Zuletzt vor 2 Sekunden überprüft."

Kubuntu 12.04


Dies funktionierte für mich und keine andere hier veröffentlichte Lösung funktionierte. Es sei denn, ich habe kein Ubuntu-UI (Kommandozeile nur unter WSL). Also <pkg>führte ich stattdessen für jedes Paket, in dem der Fehler auftrat, "sudo apt-get install <pkg>" aus. Ich bin auf Ubuntu 16.04.
Yitz

1

Ich hatte genau das gleiche Problem und alle mit dem Terminal bereitgestellten Lösungen halfen nicht.

Für mich ging es um:

Einstellungen → Software & Updates → Andere Software: Deaktivieren Sie alle Kontrollkästchen und klicken Sie auf Schließen.

Es beginnt die Repos neu zu laden und zu aktualisieren. Wenn ich eintrete:

sudo apt-get update

Danach gab es überhaupt kein Problem mehr. Ich benutze Ubuntu 13.10.


Dies funktioniert, aber es macht die Maschine effektiv blind, dass sie Pakete installieren kann, die nicht Teil des Core Builds sind (bis diese Kontrollkästchen später wieder aktiviert werden) Installation von Zielpaketen
Scott Stensland

1

Ich hatte ein ähnliches Problem und löste es, indem ich die Anwendung "Software & Updates" öffnete und auf der Registerkarte "Ubuntu Software" den Wert von "Download from" änderte (in dieser Dropdown-Liste wählen Sie beispielsweise "Main" aus Server, wenn es nicht so war).


Ja, das einzige, was bei mir funktioniert hat. Der Server in der Schweiz scheint kaputt zu sein.
Eric MORAND

1

Als Follow @ robie-basak habe ich apt-cacher-ngSpiegel-Caching verwendet. Also habe ich den Proxy entfernt und das Problem behoben.

Ich entferne den Proxy in der Datei /etc/apt/apt.conf.d/01proxy:

#Acquire::http::Proxy "http://xxx.xx.xx.xx:4321";

Dann müssen Sie:

sudo rm -rf /var/lib/apt/lists/*
sudo aptitude update
sudo aptitude upgrade

1

Ich hatte gerade Ubuntu 17.10 installiert und bekam den gleichen Fehler wie Hash Sum Mismatch für ein Repository. Ich ging wie unten gezeigt zu Software und Checked Source und es gab keine Probleme mehr beim Herunterladen des Repositorys vom Terminal.

Meine Software- und Update-Sektion


0

Dies kann passieren, wenn Sie einen Router mit Kindersicherung verwenden und Ihren Himbeer-Pi nicht in eine "nicht verwaltete" Liste aufgenommen haben. Für mich konnte ich sehen, dass die URL zu einer vom Router verwalteten Zirkeldomäne umgeleitet wurde.

Also habe ich gerade mein pi zur nicht verwalteten Liste hinzugefügt, und es hat gut funktioniert.


0

Ich habe alle Pakete behoben, die nicht installiert wurden, indem ich diesen Befehl ausgeführt habe:

sudo apt-get install PACKAGENAME

Für jedes der Pakete. Sie sind jetzt installiert und der "Hash Sum Mismatch" -Fehler ist verschwunden.


0

Bei mir hat nichts geklappt. Nachdem ich versucht hatte und die vorgeschlagenen Lösungen gefunden hatte, hatte ich die defekten Pakete manuell heruntergeladen, in / var / cache / apt / archives kopiert und die defekten Pakete aus / var / cache / apt / archives / partial entfernt.


0

Ich hatte das gleiche Problem mit meinem Ubuntu 18.04, hier ist meine praktische Erfahrung:

  1. Entfernen Sie den Proxy in /etc/apt/apt.conf
  2. Zur offiziellen apt sources.list wechseln /etc/apt/sources.list
  3. Lauf sudo rm -rf /var/lib/apt/lists/*
  4. Pakete reinigen sudo apt autoremove -y && sudo apt autoclean -y
  5. Update und Upgrade. sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y

Getan!


0

Dies geschah für mich unter Ubuntu 16.04, und keine der am besten bewerteten Lösungen funktionierte. Die Lösung bestand darin, Pakete zu aktualisieren:

sudo apt-get update    # this will fail
sudo apt-get upgrade
sudo apt-get update    # this will succeed

Nicht sicher, ob das Aufräumen alter Listen ( sudo rm -rf /var/lib/apt/lists/*und / oder sudo apt-get clean) geholfen hat oder nicht! Verwenden Sie sie bei Bedarf.


0

20190112 #Errors #apt #Fix #Updates konnten nicht abgerufen werden ... Hash-Summe stimmt nicht überein

  1. Führen Sie apt-get aus und finden Sie heraus, nach welchen Schlüsselwörtern Sie suchen müssen /etc/apt:
    • $ sudo apt-get -y update
    • ...
    • Err: 77 http://au.archive.ubuntu.com/ubuntu xenial-updates / multiverse DEP-11 64x64 Icons
    • Nichtübereinstimmung der Hash-Summe
    • ...
    • In diesem Fall lautet das Schlüsselwort "DEP-11".
  2. Durchsuchen Sie den /etc/aptBaum nach den Schlüsselwörtern:
    • $ sudo find / etc / apt -type f -exec egrep -in "DEP-11" "{}" / dev / null ";"
    • /apt.conf.d/50appstream:1:## Diese Datei wird von appstreamcli (1) zum Herunterladen von DEP-11 bereitgestellt
    • /apt.conf.d/50appstream:6: deb :: DEP-11 {
    • /apt.conf.d/50appstream:9: Beschreibung "$ (RELEASE) / $ (COMPONENT) $ (NATIVE_ARCHITECTURE) DEP-11-Metadaten";
    • /apt.conf.d/50appstream:15: # In DEP-11 beschriebene Symbole normaler Größe für GUI-Komponenten
    • /apt.conf.d/50appstream:17: deb :: DEP-11-icons {
    • /apt.conf.d/50appstream:20: Beschreibung "$ (RELEASE) / $ (COMPONENT) DEP-11 64x64 Icons";
    • /apt.conf.d/50appstream:27: # Die DEP-11-YAML-Metadaten.
    • /apt.conf.d/50appstream:28: deb :: DEP-11-icons-hidpi {
    • /apt.conf.d/50appstream:31: Beschreibung "$ (RELEASE) / $ (COMPONENT) DEP-11 128x128 Icons";
  3. Nachdem Sie die problematische Liste gefunden haben, verschieben Sie sie an einen anderen Ort, falls dies nicht funktioniert:

    sudo mv -f /apt.conf.d/50appstream /tmp  
    
  4. Aufräumen /var/lib/apt:

    sudo apt-get -y clean  
    sudo rm -rf /var/lib/apt/lists/*  
    sudo find /var/lib/apt -type d -name "partial" -exec rm -rf "{}" ";"  
    
  5. Versuchen Sie jetzt zu aktualisieren, es sollte jetzt funktionieren:

    sudo apt-get -y update  
    
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.