ソフトウェアのインストール、アップグレード、または削除で問題が発生するたびにこのメッセージが何度か表示されましたが、それはどういう意味ですかであり、さらに重要なことに、それを解決することはできますか?
(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-get
_によって呼び出されたapt
インスタンスが何らかの理由で失敗したことを意味します。理由、方法、解決方法のヒントについては説明されていません。診断メッセージとしては役に立ちません。
インストールの完了を妨げる実際のエラーを見つけるために、メッセージの前の行(場合によってはかなりの数の行)を読む必要があります。
それを解決する単一の方法はありません。これが発生する理由はたくさんあるので、それらすべてを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.
_ビンゴ!これは、ほとんどのDebianのようなシステムでinitスクリプトを制御するバイナリである_invoke-rc.d
_が失敗したことを示しています。 _/etc/init.d/mongodb
_スクリプトが見つからなかったため、失敗しました。これは悪いです。それを作成するか、別の場所からコピーして、再び機能するようにする必要があります。通常、パッケージの再インストールも_file not found
_エラーのオプションです。
この場合、スクリプトを削除したのは私たちである可能性が高いため、バグを報告する必要はありませんが、ファイルに触れなかったことが完全に確かである場合(debsums -sla
_で確認する必要があります)、バグ。
では、具体的にどのような支援が必要ですか?理想的には、問題の完全な出力。 _Sudo dpkg -C
_および_Sudo apt-get check
_の出力、および_apt-cache policy package1 package2...
_の出力を含めると便利です。ここで、「package1 package2 ...」には問題のあるすべてのパッケージが含まれています。