誰かがソフトウェアのインストール、アップグレード、または削除で問題が発生するたびにこのメッセージを何度か目にしましたが、それはどういう意味ですか 、そしてもっと重要なことに、それを解決することは可能ですか?
(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)
(上記は単なる例であり、私の実際の問題ではありません)
承認された回答:
そのメッセージは一般的です。 dpkg
という意味です apt
によって呼び出されたインスタンス / apt-get
何らかの理由で失敗しました。理由、方法、または解決方法のヒントについては説明していません。診断メッセージとしては役に立ちません。
メッセージの前の行(場合によってはかなりの数)を読んで、インストールを完了できない実際のエラーを見つける必要があります。
ええ、でもどうすれば解決できますか?
それを解決する単一の方法はありません。これが発生する理由はたくさんあるので、それらすべてを1つの投稿にリストするのは無駄です。すべての状況は、そのパッケージ/環境にほぼ固有のものです。
しかし、償還があります。このメッセージが表示されるという事実は、おそらくメッセージの前の行に、より関連性の高い情報があることを意味します。説明のために、例を使用します:
(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)
ここで、問題を見つけるには、逆に読む必要があります:
-
E: Sub-process /usr/bin/dpkg returned an error code (1)
役に立つことは何も教えてくれません。先に進みます。 -
Errors were encountered while processing: mongodb-10gen
どのパッケージに問題があるかを教えてくれます。便利ですが、十分ではありません。 -
subprocess installed post-installation script returned error exit status 100
:これは、失敗したスクリプトがpostinst
であったことを示しています 、インストール後に実行されたもの。これは状況によっては便利ですが、これでは便利ではありません。 -
dpkg: error while cleaning up:
ここでは何も役に立ちません。 -
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
ビンゴ!これは、invoke-rc.d
であることを示しています。 、ほとんどのDebianのようなシステムでinitスクリプトを制御するバイナリが失敗しました。/etc/init.d/mongodb
が見つからなかったため、失敗しました 脚本。これは悪いです。それを作成するか、別の場所からコピーして、再び機能するようにする必要があります。パッケージの再インストールも通常、file not found
のオプションです。 エラー。この場合、スクリプトを削除したのは私たちである可能性が高いため、バグを報告する必要はありませんが、ファイルに触れていないことが完全に確実な場合は(
debsums -sla
確認する必要があります)次に、バグを報告します。
それで、あなたは正確に何を助ける必要がありますか?理想的には、問題の完全な出力です。 sudo dpkg -C
の出力を含めることも役立ちます およびsudo apt-get check
、およびapt-cache policy package1 package2...
の出力 ここで、「package1package2…」には問題のあるすべてのパッケージが含まれます。