「E:サブプロセス/ usr / bin / dpkgがエラーコード(1)を返しました」これはどういう意味ですか?


31

誰かがソフトウェアのインストール、アップグレード、または削除に問題があるたびにこのメッセージを何度か見ましたが、それはどういう意味ですか?

(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)

(上記は単なる例であり、実際の問題ではありません)


2
apt-get install (something)私がやったようにあなたがしようとして、このエラーメッセージを受け取った場合、私のための解決策はでしたapt-get upgrade (something)
PJブルーネット

回答:


30

そのメッセージは一般的なものです。/ dpkgによって呼び出されたインスタンスが何らかの理由で失敗したことを意味します。それは、なぜ、どのように、またはそれを解決するためのヒントを与えることを説明しません。診断メッセージとしては、役に立ちません。aptapt-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 -Csudo apt-get check、との出力apt-cache policy package1 package2...場所「パッケージ1パッケージ2は...」の問題で、すべてのパッケージが含まれています。


あなたは全体のエラーを読めば、それが役に立つ診断メッセージ(処理中にエラーが発生しました:MongoDBの-10genを)として、それがEとして表示され、エラーではありません理由です
mchid

1
@mchidしかし、エラーの原因は何ですか?それはあなたに視力のない手がかりを与えません。
ブライアム

@mchidはい、読んだだけならどうすればわかりますErrors were encountered while processing: mongodb-10genか?現状では、問題を解決するために、その行は無価値です。
ブライアム

私の悪い点は、問題を修正する方法を探しているだけだと思いました(「解決することは可能か」)文脈からそれを取り除いたと思います。
mchid

ところで、実行してsudo touch /etc/init.d/mongodbからsudo apt-get purge mongodb-10gen問題を修正するために実行します。これをテストし、ファイルが存在する限り(/etc/init.d/mongodb)、ファイルが空の場合でもdpkgは続行します。これはtouchが行うことです(空のファイルを作成します)。
mchid
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.