Frage Wie behebe ich den Fehler "Problem mit Mergeliste" oder "Statusdatei konnte nicht analysiert werden" beim Versuch, ein Update durchzuführen?


Der Computer gab mir diese Ausgabe in einem Fenster:

E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_natty_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.

Wie kann ich das beheben?


342
2018-03-12 17:13


Ursprung


Es verblüfft mich immer wieder, wie ungeschickt dieses Betriebssystem seine Updates erledigt, auch jetzt noch, dass diese und ähnliche Dinge nach keinem speziellen Missbrauch durch den Benutzer benötigt werden. - matt


Antworten:


Diese Terminalbefehle sollten dein Problem lösen:

Entfernen Sie zuerst die Zusammenführungsliste, indem Sie ein Terminal öffnen (drücken Sie Strg+Alt+T zu starten) und diesen Befehl ausführen *:

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

Als nächstes generieren Sie ein neues, indem Sie ein einfaches Update ausführen:

sudo apt-get update

Hier ist das Fehlerbericht (und Ein weiterer) für dieses Problem, das jetzt behoben ist, so sollte es keine neuen fehlerhaften Dateien erstellen, wenn Sie jedoch die fehlerhaften Dateien bereits haben, müssen Sie sie entfernen, wie in diesem Beitrag erläutert.


* Die für RM verwendeten Optionen sind -v ausführlich

-v, --verbose                 erklären, was getan wird

und -f Macht

-f, --force                 ignoriere nicht existierende Dateien und Argumente, werde niemals aufgefordert

Wenn Sie sich über eine Befehlszeile oder die verwendeten Optionen immer unsicher sind, beziehen Sie sich immer auf die Handbuchseite für den Befehl. Auf diese kann im Internet zugegriffen werden, indem beispielsweise nach dem Befehl man und dem Befehl gesucht wird Mann rm oder Sie können auf dieselben Informationen zugreifen, indem Sie zum Beispiel genau denselben Befehl im Terminal eingeben man rm Anweisungen zum Beenden der Seite finden Sie unten auf dem Terminal

picture of man page options


473
2018-03-13 16:53



Eine Person fand heraus, dass er diese zwei Schritte mehrmals machen musste, aber dass es schließlich funktionierte. - John S Gruber
Es ist seltsam, das zu setzen -vf am Ende von rm Befehl. - Keith Thompson
Es hat das Problem für mich nicht gelöst. Update zeigt mir immer noch diesen Fehler. - marines
Dies ist ein wiederkehrendes Problem. Es passiert hin und wieder. Kennt jemand die Ursache für dieses Problem? - Rushil
Ich habe die Antwort für das Verständnis der Fähigkeit @Jasser bearbeitet - Allan


Öffnen Sie ein Terminal und führen Sie nacheinander die folgenden Befehle aus:

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

Siehe auch:


80
2018-02-08 18:37



Was macht das -vf? - speedox
@speedox, nach man rm, -v bedeutet 'ausführlich' und -f bedeutet "Kraft". Mit anderen Worten, entfernen Sie alle angegebenen Dateien ohne Aufforderung und teilen Sie dem Benutzer mit, was er tut. - fouric
In meinem Fall, nur das tun sudo apt-get update behebt das Problem. Ich denke, Allan erwähnte, dass neuere Versionen von apt dies automatisch korrigieren, also versuche vielleicht erst das Update. - ThorSummoner


Du hast es vermasselt, als du es bearbeitet hast /var/lib/dpkg/status. Stellen Sie es aus der Sicherung wieder her, die Sie vor der Bearbeitung erstellt haben. Natürlich hast du ein Backup gemacht, oder?

Da Sie kein Backup erstellt haben, bearbeiten Sie es erneut. vorsichtig. Versuche, keinen größeren Schaden anzurichten.

Sie können verwenden /var/lib/dpkg/status.old als Bezugspunkt. Dies ist eine Sicherung der status Datei von vor dem letzten Mal dpkg wurde ausgeführt. Lauf

diff /var/lib/dpkg/status.old /var/lib/dpkg/status

um die Unterschiede zu sehen. Machen Sie die Änderungen rückgängig, die Sie manuell vorgenommen haben, und behalten Sie die Änderungen bei, die zuletzt vorgenommen wurden dpkg Lauf.

Wenn Sie die Datei wirklich nicht reparieren können, kopieren Sie sie /var/lib/dpkg/status.old Über /var/lib/dpkg/status. Sie erhalten eine wohlgeformte, aber nicht mehr aktuelle Paketdatenbank.

Sie müssen nie bearbeiten /var/lib/dpkg/status im normalen Betrieb. Auch wenn die Dinge wirklich schief gehen, /var/lib/dpkg/status ist nicht etwas, das dazu neigt, Administratoreingriff zu erfordern. Was auch immer deine Probleme sind crossplatformui Es gibt wahrscheinlich einen besseren Weg, sie zu lösen. Die einzige Zeit, die ich jemals bearbeiten musste /var/lib/dpkg/status war wenn ein upstream Packages Datei war kaputt.


23
2018-05-13 15:37



Ich würde auch gerne wissen, besser gesagt, dass Sie Crossplatformui entfernen, wenn Sie coz helfen könnten, versuchte ich alle möglichen Wege, um es zu entfernen und versuchte, viele Lösungen zu finden, aber nur die, die ich erwähnt habe, hat funktioniert ... - Nirmik
@Nirmik Keine Ahnung von crossplatformui. Stellen Sie das als eine separate Frage. Ich kann dir das in über einem Jahrzehnt sagen dpkg, einschließlich vieler inoffizieller Quellen, habe ich sehr selten benötigt, um das zu bearbeiten status Datei und nur dann, wenn ein beschädigtes Drittanbieter-Repository vorhanden war. - Gilles
Okay ... Vielen Dank noch einmal ... wie Sie vorschlagen, werde ich es als eine neue Frage posten :) auch, wie Sie scheinen, ein sehr fortgeschrittener Benutzer möchte ich Sie fragen, wenn Sie etwas über die Herstellung von nicht funktionierenden HOT wissen -KTEYS arbeiten ?? (mein kabelloser Schlüssel funktioniert) - Nirmik
Versucht, das Alte an die Stelle des Neuen zu stellen, reparierte nicht für mich. :-( - Stéphane Gourichon
re: {Sie haben es vermasselt, als Sie / var / lib / dpkg / status} für mich bearbeitet haben - nein, ich bin nicht, ich habe diese Datei nicht berührt :) Aber das ist nur die Lösung, die das Problem in meinem Fall löst Fall. Vielen Dank. - ruslo


Ich tat

sudo apt-get clean
sudo apt-get update

und es hat funktioniert.


18
2017-07-31 13:34



Habe nicht für mich repariert. :-( - Stéphane Gourichon


Folgen Sie den Schritten 2-5 in der Paket-Manager Problembehandlung meist löst dieses Problem.

Zum Schritt 2, deaktivieren alle Ihre PPAs. Sie können alle in den Softwarequellen auf die gleiche Weise deaktivieren, wie Sie nur eines deaktivieren würden. sehen Wie kann man eine bestimmte PPA deaktivieren?. Sie können sie später wieder aktivieren.

Zum Schritt 3Schließen Sie alle offenen Programme, die Sie öffnen können. Es ist wahrscheinlich sicher, Ihren Webbrowser offen zu halten, damit Sie Ihre Anweisungen vor sich haben. Aber es ist besonders wichtig sicherzustellen, dass alle Paketmanager sind nicht laufen. Dazu gehören das Software Center, der Software Updater (Update Manager in älteren Versionen von Ubuntu), Synaptic und Gdebi. Es enthält auch Befehlszeilen-Paketverwaltungsprogramme wie apt-get, dpkg, und aptitude.

Beachten Sie, dass wenn andere Benutzer gleichzeitig angemeldet sind, sollten sie sich wenn möglich abmelden.

Zum Schritt 4, öffne ein Terminalfenster. Eine Möglichkeit, dies zu tun, unabhängig davon, welche Desktop-Umgebung Sie verwenden, ist zu drücken Strg+Alt+T.

Zum Schritt 5Führen Sie diese Befehle im Terminalfenster aus:

ubuntu-support-status
sudo grep -R proxy /etc/apt/*
grep proxy  /etc/environment
echo $http_proxy
echo $ftp_proxy
grep proxy /etc/bash.bashrc
grep proxy ~/.bashrc
cat /etc/apt/apt.conf
sudo fuser -vvv /var/lib/dpkg/lock
sudo fuser -vvv /var/cache/apt/archives/lock
cat /etc/lsb-release
uname -a
sudo rm /var/lib/apt/lists/lock 
sudo rm  /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup
sudo mv /var/lib/dpkg/status /var/lib/dpkg/status-bad
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status  ||  sudo cp /var/backups/apt.extended_states.0 /var/lib/dpkg/status
sudo mv /var/lib/dpkg/available /var/lib/dpkg/available-bad
sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists
sudo rm /var/cache/apt/*.bin
sudo mkdir /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists/partial
LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000
sudo dpkg --configure -a
sudo dpkg --clear-avail
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgrade
find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; cat -n "$1"' _ '{}' \;

Ich habe das wortwörtlich kopiert PackageManagementTroubleshootingProcedure am 2. März 2014. Diese Befehle haben sich in der Vergangenheit entwickelt und die empfohlenen Befehle in diesem Artikel kann in Zukunft wieder geändert oder erweitert werden. Vielleicht möchten Sie also arbeiten Schritt 5 dort. (Dieser Artikel, erstellt / bearbeitet von "Mitwirkende zum Ubuntu-Dokumentations-Wiki" - besonders Mark Rijckenberg- ist lizenziert CC-BY-SA 3.0, was die Aufnahme hier mit richtiger Zuordnung erlaubt.)

Einige dieser Befehle versuchen, das Problem zu beheben (und können auch Diagnoseinformationen anzeigen). Andere zeigen wertvolle Informationen über das Problem an, das Sie in Ihre Frage aufnehmen können oder die Sie anderweitig an jemanden weiterleiten können. (Oder, abhängig von Ihren Fähigkeiten, kann aktivieren Sie zu diagnostizieren und zu lösen.)

Oft behebt dies das Problem, aber wenn es nicht funktioniert, gibt es oft genug Informationen, um es zu beheben.

Sie müssen diese Befehle nicht manuell eingeben. Sie können sie kopieren und einfügen. Ich empfehle das Einfügen und Ausführen jedes einzelnen separat. Dadurch wird deutlicher, welche Ausgabe von welchen Befehlen stammt.


16
2017-11-28 02:36



Ich habe den ganzen Block kopiert und eingefügt, statt einzeln zu laufen. Obwohl einige Befehle in diesem sind nutzlos und einige fehlgeschlagen, aber schließlich hilft es in meinem Fall - phuclv


Ich habe auch gesehen, dass dieses Problem auftritt, wenn Sie zu viele Quellen in Ihren Repos haben.

Probieren Sie die oben beschriebene Lösung und / oder vielleicht auch das, was manchmal im Launchpad empfohlen wird:

sudo mv /var/lib/apt/lists /var/lib/apt/lists-old
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get update

Lass uns wissen, wie es dir geht.


11
2018-05-08 10:19



Vielen Dank! Dies funktionierte nicht mit DSL ohne Makedir. - Doug


Ich geriet in einen ähnlichen Fehler:

Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.

Ich folgte ähnlichen Vorschlägen zum Kopieren status-old.

$ head /var/lib/dpkg/status
$ head /var/lib/dpkg/status-old

Alle meine Statusdateien waren aus irgendeinem Grund leer. Zum Glück habe ich herausgefunden, dass es Backups dieser Dateien gibt:

$ ls -l /var/backups/dpkg.status.*
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.0
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.1.gz
-rw-r--r-- 1 root root 128168 Sep 20  2013 /var/backups/dpkg.status.2.gz
-rw-r--r-- 1 root root 112545 Sep 16  2013 /var/backups/dpkg.status.3.gz
-rw-r--r-- 1 root root 107767 Sep 14  2013 /var/backups/dpkg.status.4.gz
-rw-r--r-- 1 root root 107766 Sep 11  2013 /var/backups/dpkg.status.5.gz
-rw-r--r-- 1 root root  94583 Sep 11  2013 /var/backups/dpkg.status.6.gz

Ich habe das neueste Backup überprüft ...

$ head /var/backups/dpkg.status.0

... aber es war immer noch leer. Also habe ich einen älteren entpackt ...

$ gunzip /var/backups/dpkg.status.1.gz
$ head /var/backups/dpkg.status.1

Diesmal gab es Inhalt. Also habe ich es kopiert ...

$ cp /var/backups/dpkg.status.1 /var/lib/dpkg/status

Dann apt-get update lief ohne Probleme.

Der Kredit geht an diesen Post.


4
2018-04-11 22:43





Ich hatte das gleiche Problem und versuchte alle in anderen Antworten erwähnten Fehlerbehebungen. Seltsamerweise war die einzige Lösung ein anderer Schritt:

  • Gehen Sie zu Software & Updates -> Ubuntu Software -> Herunterladen von -> Sonstiges -> Besten Server auswählen

  • Warte auf die Tests. Am Ende der Tests wird der beste Server ausgewählt, nicht unbedingt der nächste Server oder der Hauptserver oder der Server für Ihr Gebietsschema.

  • Jetzt laden Sie die Repo-Daten neu, es wird ordnungsgemäß beendet.


3
2017-11-11 04:12