Ich habe diese Meldung mehrmals gesehen, wenn ein Problem beim Installieren, Aktualisieren oder Entfernen einer Software aufgetreten ist. Ich frage mich jedoch, was dies bedeutet und was noch wichtiger ist, ob es möglich ist , das Problem zu beheben .
(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)
apt-get install (something)
und diese Fehlermeldung wie ich erhalten haben, war die Lösung für michapt-get upgrade (something)
.Antworten:
Diese Nachricht ist generisch. Es bedeutet nur, dass die
dpkg
vonapt
/ aufgerufene Instanzapt-get
aus irgendeinem Grund fehlgeschlagen ist. 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 eine ganze Reihe von Zeilen), um den tatsächlichen Fehler zu finden, der Sie daran hindert, die Installation abzuschließen.
Ja, aber wie löse ich das?
Es gibt keinen einzigen Weg, dies zu lösen. Es gibt so viele Gründe, warum dies passieren kann, dass es sinnlos 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 Nachricht sehen, bedeutet, dass sich wahrscheinlich relevantere Informationen in den Zeilen vor der Nachricht befinden. Zur Veranschaulichung verwende ich ein Beispiel:
Um nun das Problem zu finden, müssen Sie rückwärts lesen:
E: Sub-process /usr/bin/dpkg returned an error code (1)
sagt mir nichts nützliches. Also mach weiter.Errors were encountered while processing: mongodb-10gen
sagt mir nur was paket probleme hat. Ist nützlich aber nicht genug.subprocess installed post-installation script returned error exit status 100
: dies sagt mir, dass das fehlgeschlagene Skript das warpostinst
, das nach der Installation ausgeführt wurde. Dies ist in einigen Situationen nützlich, in diesem jedoch nicht.dpkg: error while cleaning up:
hier nix brauchbares.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, fehlgeschlagen ist. Es ist fehlgeschlagen, weil das/etc/init.d/mongodb
Skript nicht gefunden werden konnte . Das ist schlecht. Wir müssen es erstellen oder von einem anderen Ort kopieren, damit es wieder funktioniert. Das erneute Installieren des Pakets ist normalerweise auch eine Option fürfile not found
Fehler.In diesem Fall ist das Melden eines Fehlers nicht erforderlich, da es wahrscheinlich ist, dass wir das Skript entfernt haben. Wenn Sie jedoch völlig sicher sind, dass Sie die Datei nicht berührt haben (a
debsums -sla
sollte dies bestätigen), melden Sie einen Fehler.Also, was genau brauchst du, um Hilfe zu bekommen? Idealerweise ist die komplette Ausgabe des Problems. Es ist auch hilfreich, die Ausgabe von
sudo dpkg -C
undsudo apt-get check
und die Ausgabe vonapt-cache policy package1 package2...
where "package1 package2 ..." enthält alle Pakete mit Problemen.quelle
Errors were encountered while processing: mongodb-10gen
? Um das Problem zu lösen, ist diese Linie wertlos .sudo touch /etc/init.d/mongodb
und dann laufensudo apt-get purge mongodb-10gen
, um das Problem zu beheben. Ich habe dies getestet und solange die Datei existiert (/etc/init.d/mongodb), fährt dpkg fort, auch wenn die Datei leer ist, was touch macht (erstellt eine leere Datei).