Ubuntuで「サブプロセス/ usr / bin / dpkgがエラーコード(1)を返しました」を解決する方法


Ubuntuやその他のDebianベースのディストリビューションで壊れたパッケージの問題が発生することは珍しくありません。システムをアップグレードしたり、ソフトウェアパッケージをインストールしたりすると、「サブプロセス/ usr/bin/dpkgがエラーコードを返しました」というエラーが発生する場合があります。

たとえば、しばらく前に、Ubuntu 18.04をアップグレードしようとしましたが、以下に示すようにdpkgエラーが発生しました。

Errors were encountered while processing:
google-chrome-stable
E: Sub-process /usr/bin/dpkg returned an error code (1)

これは、google-chrome-stableパッケージが壊れているか破損していることを示しています。この問題にはいくつかの回避策があるため、まだタオルを投げたり、システムを廃棄したりしないでください。

解決策1:dpkgパッケージを再構成する

このエラーのトリガーの1つは、破損したdpkgデータベースです。これは、ソフトウェアパッケージのインストールが突然中断されたことが原因である可能性があります。データベースの再構成は、この問題を解決する1つの方法です。

これを行うには、次のコマンドを実行するだけです。

$ sudo dpkg --configure -a

これにより、インストールプロセス中にインストールされなかった解凍済みパッケージが再構成されます。

解決策2:面倒なパッケージを強制的にインストールする

ソフトウェアパッケージのインストール中にエラーが発生する場合があります。このような場合は、図のように -f オプションを使用してパッケージを強制的にインストールできます。

$ sudo apt install -f
OR
$ sudo apt install--fix-broken

-f オプションと-fix-broken を同じ意味で使用して、パッケージのダウンロードの中断またはキャッシュされたパッケージのダウンロードによって発生した依存関係の破損を修正できます。

解決策3:不良または破損したソフトウェアパッケージを削除する

最初の2つの解決策で問題が解決しなかった場合は、図のように問題のあるソフトウェアパッケージを削除またはパージできます。

$ sudo apt remove --purge package_name

たとえば、私の場合、GoogleChromeパッケージを削除すると問題が修正されました。

$ sudo apt remove --purge google-chrome-stable

次に、以下のコマンドを呼び出して、古い、未使用の、不要なパッケージをすべて削除します。これにより、ハードドライブの空き容量も増えます。

$ sudo apt clean
$ sudo apt autoremove

解決策4:パッケージに関連付けられているすべてのファイルを削除します

最後に、面倒なパッケージに関連するすべてを手動で削除できます。まず、示されているように/ var/lib/dpkg/infoディレクトリにあるこれらのファイルを見つける必要があります。

$ sudo ls -l /var/lib/dpkg/info | grep -i package_name

ファイルを一覧表示した後、図のように/ tmpディレクトリにファイルを移動できます。

$ sudo mv /var/lib/dpkg/info/package-name.* /tmp

または、rmコマンドを使用してファイルを手動で削除することもできます。

$ sudo rm -r /var/lib/dpkg/info/package-name.*

最後に、次のようにパッケージリストを更新します。

$ sudo apt update

その後、ソフトウェアパッケージを再インストールする際にもう一度試してみることができます。

このタイプのdpkgエラーは、通常、インストールプロセスの中断または破損したdpkgデータベースによって引き起こされるパッケージインストーラーの問題を示しています。

上記の解決策のいずれかでこのエラーを修正する必要があります。ここまで来た場合は、問題が正常に解決され、ソフトウェアパッケージを再インストールできたことを願っています。