E: Der Unterprozess / usr / bin / dpkg hat einen Fehlercode (1) zurückgegeben - aber wie finde ich die aussagekräftigen Fehlermeldungen in der APT-Ausgabe?

8

Ich habe verschiedene Probleme bei der Paketverwaltung festgestellt, die dazu führen, dass APT-Befehle bei einer Ausgabe fehlschlagen, die mit dieser Zeile endet:

E: Sub-process /usr/bin/dpkg returned an error code (1)

Gelegentlich können andere Fehlercodes auftreten, z. B. 100 dpkg ist nicht vorhanden , aber 1der häufigste Fehlercode.

Leider sagt mir dieser Fehlercode fast nichts darüber aus, was den Fehler tatsächlich verursacht hat oder wie ich ihn beheben sollte. Fast jedes Paketverwaltungsproblem, das ich sehe, unabhängig von seiner Ursache oder Lösung, erzeugt den gleichen Fehler!

Wo finde ich den nützlichen Teil der Ausgabe, nach dem ich online suchen oder auf Ask Ubuntu Fragen stellen kann?

Zanna
quelle

Antworten:

5

Apt protokolliert seine Aktionen nacheinander , genau wie ein Mensch.

Lesen Sie einfach die Ausgabe Zeile für Zeile.

Hier ist ein nicht passendes Beispiel. Lesen Sie es Zeile für Zeile und Sie werden sehen, dass es eine Geschichte erzählt:

I am going to build a tower out of five blocks...
Clearing a working surface in the kitchen.
Kitchen: Put 7 dirty dishes from the counter into the dishwasher
Kitchen: Wiped the counter clean
Opening the box of blocks.
Warning: There are only three blocks in the box.
Build: Placed the first block.
Build: Placed the second block.
Build: Placed the third block.
Build: ERROR: Cannot keep building - ran out of blocks.
Closing the box of blocks.
ERROR (summary): Failed to complete the five-block tower.

Apt und dpkg - Logging in genau der gleichen Art und Weise - lesen Sie die Geschichte line-by-line. Sie sehen, wie der Paketmanager sein Abenteuer beginnt: Vorbereiten, Unteraufgaben ausführen, auf nicht schwerwiegende Probleme (Warnungen) stoßen, Widrigkeiten überwinden usw.

Der größte Teil der Ausgabe ist Routine, aber Sie benötigen sie, um den Fortschritt von apt zu markieren. In diesem Kontext verstehen Sie, was passiert ist. Es ist wirklich eine Geschichte.

Fehler (1) ist häufig. Es handelt sich um einen zusammenfassenden Fehlercode, der angibt, dass das Problem bei einer Unteraufgabe aufgetreten ist (" einige Probleme beim Erstellen "). Springen Sie in der Geschichte rückwärts zu dem Punkt, an dem diese bestimmte Unteraufgabe aufgetreten ist, und Sie werden das spezifische Detail sehen ("keine Blöcke mehr ").

user535733
quelle
5

In der vollständigen Ausgabe von sudo apt updateoder sudo apt upgradeoder sudo apt install -fsollten Sie einige Nachrichten dpkgdarüber finden, was tatsächlich schief gelaufen ist.

Diese Zeilen beginnen mit, dpkg:da dies der Name des Programms ist, das den Fehler zurückgibt. Die Ausgabezeilen unmittelbar vor oder nach diesen Zeilen sind häufig am hilfreichsten.


Einige Beispiele für die vielen möglichen Fehler, die Sie möglicherweise sehen:

Setting up install-info (6.4.90.dfsg.1-1build1) ...
/usr/sbin/update-info-dir: 3: /etc/environment: $: not found
dpkg: error processing package install-info (--configure):
    subprocess installed post-installation script returned error exit status 127

Dies bedeutet, dass das Skript nach der Installation nicht ausgeführt werden konnte. Shells verwenden den Exit-Status 127, um "Befehl nicht gefunden" zu bedeuten. Daher wurde ein vom Post-Inst-Skript aufgerufener Befehl nicht gefunden. Die Zeilen vor der dpkgZeile geben einen Hinweis auf den Grund: Es stimmt etwas nicht mit der /etc/environmentDatei (die Umgebungsvariablen wie festlegen sollte PATH).

start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
No apport report written because the error message indicates its a followup error from a previous failure.
dpkg: error processing package runit (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of git-daemon-run:
 git-daemon-run depends on runit; however:
  Package runit is not configured yet.

Der obige Fehler wurde durch einen Fehler im runitPaket verursacht, bei dem erwartet wurde, dass Upstart installiert ist, obwohl systemd als Standard-Init-System für Ubuntu erfolgreich war. Die Nachricht failed to connect to Upstartist also der beste Hinweis, aber wir benötigen den Kontext, um herauszufinden, wie dies das Problem der Paketverwaltung verursacht.

Unpacking libjline-java (from .../libjline-java_1.0-1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/libjline-java_1.0-1_all.deb (--unpack):
 trying to overwrite '/usr/share/java/jline.jar', which is also in package scala 2.9.2-400

Dies bedeutet, dass es Paketkonflikte gibt, die möglicherweise durch eine Mischung aus Repository-Versionen oder Repositorys von Drittanbietern verursacht werden.


TL; DR

In jedem Fall, in dem der Fehler angezeigt wird Sub-process /usr/bin/dpkg returned an error code (1), müssen Sie oben nach Zeilen suchen, die mit dpkg:und vor und nach den Zeilen beginnen , um nützliche Hinweise darauf zu erhalten, was schief gelaufen ist. Versuchen Sie, nach diesen spezifischen Fehlern zu suchen .

Wenn Sie hier oder auf einer anderen Support-Site eine Frage stellen, stellen Sie sicher, dass Sie den von Ihnen ausgeführten Befehl und die vollständige Ausgabe angeben, nicht nur die zusammenfassenden Fehlermeldungen.

Zanna
quelle