Ich habe diese Meldung mehrmals gesehen, wenn jemand ein Problem beim Installieren, Aktualisieren oder Entfernen einer Software hat, aber ich frage mich, was bedeutet das , und was noch wichtiger ist, ist es möglich, es zu lösen?
(Reading database ... 81657 files and directories currently installed.)
Removing mongodb-10gen ...
arg: remove
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error processing mongodb-10gen (--remove):
subprocess installed pre-removal script returned error exit status 100
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 100
Errors were encountered while processing:
mongodb-10gen
E: Sub-process /usr/bin/dpkg returned an error code (1)
(das Obige ist nur ein Beispiel, nicht mein eigentliches Problem)
Akzeptierte Antwort:
Diese Nachricht ist generisch. Es bedeutet lediglich, dass das dpkg
Instanz, die von apt
aufgerufen wird /apt-get
aus irgendeinem Grund fehlgeschlagen. Es erklärt nicht warum, wie oder gibt Hinweise, wie man es löst. Als Diagnosemeldung ist es nicht sinnvoll.
Sie müssen die Zeilen vor der Meldung lesen (manchmal ziemlich viele), um den wahren Fehler zu finden, der Sie daran hindert, die Installation abzuschließen.
Ja, aber wie löse ich das?
Es gibt keinen einzigen Weg, es zu lösen. Es gibt so viele Gründe, warum dies passieren kann, dass es zwecklos ist, sie alle in einem einzigen Beitrag aufzulisten. Jeder einzelne Umstand ist für dieses Paket/diese Umgebung fast einzigartig.
Aber es gibt Erlösung. Die Tatsache, dass Sie diese Meldung sehen, bedeutet, dass wahrscheinlich relevantere Informationen in den Zeilen vor der Meldung vorhanden sind. Zur Veranschaulichung verwende ich ein Beispiel:
(Reading database ... 81657 files and directories currently installed.)
Removing mongodb-10gen ...
arg: remove
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error processing mongodb-10gen (--remove):
subprocess installed pre-removal script returned error exit status 100
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 100
Errors were encountered while processing:
mongodb-10gen
E: Sub-process /usr/bin/dpkg returned an error code (1)
Um das Problem zu finden, müssen Sie jetzt rückwärts lesen:
-
E: Sub-process /usr/bin/dpkg returned an error code (1)
sagt mir nichts brauchbares. Also weitermachen. -
Errors were encountered while processing: mongodb-10gen
sagt mir nur, welches Paket Probleme hat. Ist nützlich, aber nicht genug. -
subprocess installed post-installation script returned error exit status 100
:Dies sagt mir, dass das Skript, das fehlgeschlagen ist,postinst
war , die nach der Installation ausgeführt wird. Dies wird in manchen Situationen nützlich sein, aber nicht in dieser. -
dpkg: error while cleaning up:
nichts nützliches hier. -
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
BINGO! Dies sagt uns, dassinvoke-rc.d
, eine Binärdatei, die das Init-Skript in den meisten Debian-ähnlichen Systemen steuert, schlug fehl. Es ist fehlgeschlagen, weil es/etc/init.d/mongodb
nicht finden konnte Skript. Das ist schlecht. Wir müssen es erstellen oder von woanders kopieren, damit es wieder funktioniert. Die Neuinstallation des Pakets ist normalerweise auch eine Option fürfile not found
Fehler.In diesem Fall ist das Melden eines Fehlers nicht erforderlich, da wir wahrscheinlich diejenigen waren, die das Skript entfernt haben, aber wenn Sie absolut sicher sind, dass Sie die Datei nicht verändert haben (ein
debsums -sla
sollte es bestätigen) und dann einen Fehler melden.
Also, was genau brauchen Sie, um Hilfe zu bekommen? Idealerweise die komplette Ausgabe des Problems. Es ist auch hilfreich, die Ausgabe von sudo dpkg -C
einzuschließen und sudo apt-get check
, und die Ausgabe von apt-cache policy package1 package2...
wobei „Paket1 Paket2 …“ alle Pakete mit Problemen enthält.