APTコマンドが次の行で終わる出力で失敗する原因となる、さまざまなパッケージ管理の問題が発生しました:
E: Sub-process /usr/bin/dpkg returned an error code (1)
100
dpkgがないことを意味する などの他のエラーコードが表示される場合がありますが、1
が最も一般的なエラーコードです。
残念ながら、このエラーコードは、エラーの実際の原因や解決方法についてはほとんど何も教えてくれません。原因や解決策に関係なく、私が目にするほとんどすべてのパッケージ管理の問題は同じエラーを引き起こします!
それで、オンラインで検索したり、Ask Ubuntuで質問したりできる出力の有用な部分はどこにありますか?
_Sudo apt update
_または_Sudo apt upgrade
_または_Sudo apt install -f
_の完全な出力では、実際に何が問題だったかに関するdpkg
からのメッセージがいくつか見つかります。
これらの行は、エラーを返すプログラムの名前であるため、_dpkg:
_で始まります。これらの行の直前または直後の出力の行が最も役立ちます。
_Setting up install-info (6.4.90.dfsg.1-1build1) ...
/usr/sbin/update-info-dir: 3: /etc/environment: $: not found
dpkg: error processing package install-info (--configure):
subprocess installed post-installation script returned error exit status 127
_
つまり、インストール後のスクリプトを実行できませんでした。シェルは127の終了ステータスを使用して「コマンドが見つかりません」を意味するため、post-instスクリプトによって呼び出されたコマンドは見つかりませんでした。 dpkg
行の前の行は、理由に関するヒントを提供します:_/etc/environment
_ファイル(PATH
のような環境変数を設定する必要があります)に問題があります。
_start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
No apport report written because the error message indicates its a followup error from a previous failure.
dpkg: error processing package runit (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of git-daemon-run:
git-daemon-run depends on runit; however:
Package runit is not configured yet.
_
上記のエラーは、runit
パッケージのバグが原因で発生しました。これにより、Upstartがインストールされていることが予期されていましたが、Ubuntuのデフォルトのinitシステムとしてsystemdが成功しました。したがって、メッセージ_failed to connect to Upstart
_が最良のヒントですが、これがパッケージ管理の問題を引き起こしている原因を見つけるためのコンテキストが必要です。
_Unpacking libjline-Java (from .../libjline-Java_1.0-1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/libjline-Java_1.0-1_all.deb (--unpack):
trying to overwrite '/usr/share/Java/jline.jar', which is also in package scala 2.9.2-400
_
これは、おそらくリポジトリのバージョンまたはサードパーティのリポジトリが混在していることが原因で、パッケージの競合が発生していることを意味します。
エラーSub-process /usr/bin/dpkg returned an error code (1)
が表示される場合は、上記の_dpkg:
_で始まる行とその前後の行を調べて、問題の手掛かりを見つける必要があります。これらの固有のエラーを検索してみてください。
ここまたは別のサポートサイトで質問する場合は、要約エラーメッセージだけでなく、実行したコマンドとcomplete出力を含めてください。 。
Aptは、そのアクションを記録しますsequentially、ちょうど人間がするように。
出力を行ごとに読み取るだけです。
以下は適切でない例です。それを一行ずつ読むと、それが物語を物語っていることがわかります:
I am going to build a tower out of five blocks...
Clearing a working surface in the kitchen.
Kitchen: Put 7 dirty dishes from the counter into the dishwasher
Kitchen: Wiped the counter clean
Opening the box of blocks.
Warning: There are only three blocks in the box.
Build: Placed the first block.
Build: Placed the second block.
Build: Placed the third block.
Build: ERROR: Cannot keep building - ran out of blocks.
Closing the box of blocks.
ERROR (summary): Failed to complete the five-block tower.
Aptとdpkgのロギングはexactlyでも同じように機能します。ストーリーを1行ずつ読みます。パッケージマネージャーが冒険に乗り出します。準備、サブタスクの実行、致命的でない問題(警告)の発生、逆境の克服などです。
ほとんどの出力はルーチンですが、aptの進行状況をマークするために必要です。そのコンテキストは、何が起こっていたかを理解する方法です。それは本当に物語です。
エラー(1)は一般的です。これはsummaryエラーコードであり、サブタスクで問題が発生したことを示します( "some problem building")。ストーリーをさかのぼって、その特定のサブタスクが発生した場所に移動すると、特定の詳細が表示されます( "run out of blocks")。