Wie behebe ich einen Fehler "Problem mit MergeList" oder "Statusdatei konnte nicht analysiert werden", wenn ich versuche, ein Update durchzuführen?


Zur akzeptierten Antwort gehen


Der Computer hat mir diese Ausgabe in einem Fenster gegeben:

 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?


356





2011-03-12




Anzahl der Antworten: 8


Diese Terminalbefehle sollten Ihr Problem lösen:

Entfernen Sie zuerst die Zusammenführungsliste, indem Sie ein Terminal öffnen (Drücken Sie zum Starten Ctrl+ Alt+ T) und führen Sie den folgenden Befehl aus *:

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

Erstellen Sie als Nächstes ein neues, indem Sie ein einfaches Update ausführen:

 sudo apt-get update
 

Hier ist der Fehlerbericht (und ein anderer ) für dieses Problem, der jetzt behoben ist, damit keine neuen fehlerhaften Dateien erstellt werden. Wenn Sie jedoch bereits über die fehlerhaften Dateien verfügen, müssen Sie sie entfernen, wie in diesem Beitrag erläutert.


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

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

und -f Kraft

-f, --force ignoriert nicht existierende Dateien und Argumente, fordere niemals dazu auf

Wenn Sie sich über eine Befehlszeile oder die verwendeten Optionen nicht sicher sind, lesen Sie immer die Handbuchseite für den Befehl. Sie können im Internet auf diese zugreifen, indem Sie nach man suchen und den Befehl zum Beispiel man rm eingeben. Sie können auf dieselben Informationen zugreifen, indem Sie im Terminal genau denselben Befehl eingeben. man rm Anweisungen zum Verlassen der Seite befinden sich am unteren Rand des Terminals wie Dies


Bild der Manpage-Optionen


486


2011-03-13

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

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

Siehe auch:


82


2011-02-08

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

Da Sie keine Sicherungskopie erstellt haben, müssen Sie sie erneut sorgfältig bearbeiten . Versuchen Sie, keinen weiteren Schaden zu verursachen.

Sie können /var/lib/dpkg/status.old als Referenzpunkt verwenden. Dies ist eine Sicherungskopie der status Datei, die vor der letzten dpkg Ausführung erstellt wurde. Lauf

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

die Unterschiede zu sehen. Machen Sie die Änderungen rückgängig, die Sie manuell vorgenommen haben, und behalten Sie die Änderungen bei, die beim letzten dpkg Durchlauf vorgenommen wurden.

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

Sie müssen niemals /var/lib/dpkg/status im normalen Betrieb bearbeiten . Auch wenn die Dinge ernsthaft schief gehen, /var/lib/dpkg/status ist kein Eingreifen des Administrators erforderlich. Was auch immer Ihre Probleme crossplatformui waren, es gibt wahrscheinlich einen besseren Weg, sie zu lösen. Das einzige Mal, dass ich jemals bearbeiten musste, /var/lib/dpkg/status war, als eine Upstream- Packages Datei beschädigt wurde.


23


2012-05-13

Ich tat

 sudo apt-get clean
sudo apt-get update
 

und es hat funktioniert.


18


2012-07-31

Das Befolgen der Schritte 2 bis 5 in der Prozedur zur Fehlerbehebung in Package Manager behebt normalerweise dieses Problem.

Deaktivieren Sie für Schritt 2 alle Ihre PPAs. Sie können alle in Software Sources deaktivieren, so wie Sie nur eine deaktivieren würden. Siehe So deaktivieren Sie eine bestimmte PPA? . Sie können sie später wieder aktivieren.

Für Schritt 3 Schließen Sie alle geöffneten Programme , Sie können. Es ist wahrscheinlich sicher, Ihren Webbrowser offen zu halten, damit Sie Ihre Anweisungen vor sich haben. Aber es ist besonders wichtig , all Paket - Manager , um sicherzustellen , wird nicht ausgeführt . Dazu gehören das Software Center, der Software Updater (Update Manager in älteren Versionen von Ubuntu), Synaptic und Gdebi. Es enthält auch Paket - Management - Dienstprogramme Befehlszeilen wie apt-get , dpkg , und aptitude .

Beachten Sie, dass andere Benutzer, die gleichzeitig angemeldet sind, sich nach Möglichkeit abmelden sollten.

Öffnen Sie für Schritt 4 ein Terminalfenster. Eine Möglichkeit, dies unabhängig von der verwendeten Desktop-Umgebung zu tun, besteht darin, Ctrl+ Alt+ zu drücken T.

Führen Sie für Schritt 5 die folgenden 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"' _ '{}' \;
 

Das habe ich wörtlich aus PackageManagementTroubleshoootingProcedure am 2. März 2014 kopiert . Diese Befehle wurden in der Vergangenheit weiterentwickelt, und die in diesem Artikel empfohlenen Befehle können in Zukunft möglicherweise geändert oder erweitert werden . Vielleicht möchten Sie dort ab Schritt 5 arbeiten . (Dieser Artikel, erstellt / bearbeitet von "Contributors to the Ubuntu documentation wiki" - insbesondere Mark Rijckenberg - ist mit CC-BY-SA 3.0 lizenziert , was die Aufnahme hier mit korrekter Zuordnung ermöglicht.)

Einige dieser Befehle versuchen, das Problem zu beheben (und zeigen möglicherweise auch Diagnoseinformationen an). Andere zeigen wertvolle Informationen zu dem Problem an, das Sie in Ihre Frage einbeziehen oder anderen Personen zur Verfügung stellen können, die Ihnen helfen. (Oder, abhängig von Ihren Fähigkeiten, können Sie es diagnostizieren und lösen.)

Oft behebt dies das Problem, aber wenn dies nicht der Fall ist, 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 jedoch, jedes einzeln einzufügen und auszuführen. Dadurch wird klarer, welche Ausgabe von welchen Befehlen stammt.


16


2011-11-28

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

Probieren Sie die oben angegebene Lösung aus und / oder vielleicht auch die, die manchmal auf dem 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
 

Lassen Sie uns wissen, wie es Ihnen geht.


11


2011-05-08

Ich bin auf einen ähnlichen Fehler gestoßen:

 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 eine ältere 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 es ohne Probleme.

Gutschrift geht an diesen Beitrag.


4


2014-04-11

Ich hatte das gleiche Problem und habe alle in den anderen Antworten genannten Fehlerbehebungsmaßnahmen versucht. Seltsamerweise war die einzige Lösung ein anderer Schritt:

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

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

  • Jetzt Repo Daten neu laden, es wird korrekt beendet.


3


2015-11-11