GNU/Linux >> Linux の 問題 >  >> Ubuntu

「問題を修正できない、壊れたパッケージを保持している」の修正Ubuntuおよびその他のLinuxディストリビューションでのエラー

Ubuntuにアプリケーションをインストールする方法はさまざまですが、ソフトウェアをインストールするためにターミナルでaptコマンドを使用することを好みます。

同じことを行うと、次のような依存関係エラーが発生する可能性があります。

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 green-recorder : Depends: python-urllib3 but it is not installable
E: Unable to correct problems, you have held broken packages.

通常、It’s FOSSでは、複雑な問題の解決策を簡単かつ簡単に見つけることができます。残念ながら、これはそれほど単純ではありません。

このトラブルシューティングの記事では、このエラーが発生する理由を説明し、この問題を解決する方法についていくつかの指針を示します。

「壊れたパッケージを保持しました」というエラーが表示されるのはなぜですか?

アプリケーションパッケージをインストールしようとしていました。おそらくPPAまたはサードパーティのリポジトリからです。

多くの場合、アプリケーションには特定のバージョンのライブラリとソフトウェアコンポーネント(依存関係と呼ばれる)が必要です。これらの依存関係は、アプリケーションパッケージ自体の一部ではない場合がありますが、システムにすでにインストールされているか、アプリケーションのインストール中にインストールされることが期待されます。

Linuxシステムは、これらの依存関係を独自にインストールしようとします。ただし、依存関係パッケージのバージョンがシステムで利用できない場合、この依存関係の問題を解決する方法がないため、混乱します。

これが、インストールしようとしたソフトウェアがXYZに依存しているが、このXYZはインストールできないことを通知する理由です。

もう1つの使用例は、パッケージを保持できる場合、同じソフトウェアの2つのバージョンをインストールしようとする場合です。別のバージョンがすでにインストールされているときに、特定のバージョンのWineをインストールするとします。

「問題を修正できません。壊れたパッケージを保持しています」というエラーを修正する方法

あなたは物事を機能させるためにいくつかのことを試すことができます。ここで問題を解決するには、Linuxコマンドラインでパッケージをインストール/削除するためのアイデアが必要です。

システムのパッケージキャッシュが更新されていることを確認してください

まず、ローカルパッケージキャッシュが更新されていることを確認します。システムは、このキャッシュで使用可能なパッケージをチェックします。キャッシュの更新後に依存関係パッケージがシステムに表示される可能性があります(ただし、確実ではありません)。

sudo apt update

面倒なパッケージをもう一度インストールして、問題が解決するかどうかを確認してください。

依存関係をインストールする

面倒なパッケージを再度インストールしようとしても、同じ依存関係エラーについて文句を言う場合は、おそらくその依存関係が配布バージョンで利用できない場合と同じです。

apt searchコマンドを使用して、このライブラリを他のパッケージまたは名前から取得できるかどうかを確認できます。

sudo apt search package_name

パッケージが利用可能な場合、それはインストールしようとしたパッケージによって要求されたものと同じバージョンですか?

依存関係パッケージをインストールして、何が起こるかを確認してください:

sudo apt install dependency_package

依存関係の連鎖に遭遇する可能性があります。依存関係Aをインストールしようとしましたが、Bについて文句を言います。次に、Bをインストールしようとすると、Cについて文句を言います。

パッケージCをインストールしようとすると、すでにインストールされている場合もあります。パッケージCのバージョンを確認してください。パッケージBで必要なバージョンと同じですか?はいの場合は、Cを削除して再度インストールすると役立つ場合があります。

不足している依存関係パッケージを他のソースから入手できますか?

不足している依存関係パッケージがシステムで見つからない場合(apt検索の結果がない場合)、別の場所から依存関係パッケージを取得しようとする場合があります。それはあまり便利なことではないことは知っていますが、ここには多くの選択肢がありません。

たとえば、shutterをインストールする場合、libgoo-canvas-perlについて不平を言い、このライブラリはUbuntuシステムでは利用できなくなりました。

sudo apt install shutter
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 shutter : Depends: libgoo-canvas-perl but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

ただし、以前のバージョンのUbuntuで利用可能だったため、Ubuntuのパッケージアーカイブでこのパッケージを探し、Ubuntu14.04のリストで見つけました。 .DEBファイルをダウンロードしてインストールしました。

この依存関係パッケージがインストールされたので、元のアプリケーション(この場合はシャッター)をインストールしようとしても、少なくともこのパッケージについて文句を言うことはありません。

依存関係パッケージがどこにも見つからない場合は、他のソースから厄介なパッケージをインストールしてください

そのため、上記の例では、PPAを使用してGreenRecorderアプリケーションをインストールしようとしました。このアプリケーションにはpython-urllib3が必要です ライブラリですが、残念ながら、このライブラリは私のUbuntu20.04システムでは利用できません。

[email protected]:~$ apt search python-urllib3
Sorting... Done
Full Text Search... Done

明らかに、これはパッケージが不十分なアプリケーションです。開発者は、Ubuntu20.04がPython2をサポートしなくなり、すべてのPythonライブラリがpython3プレフィックスで始まることに気付かずに、Ubuntu20.04で利用できるようにしました。したがって、python-urllib3はpython3-urllib3である必要があります。

このような状況にある場合は、プロジェクトのホームページを確認するか、インターネットでプロジェクトをインストールするための代替ソースを検索してください。おそらく、Snap / Flatpakバージョンがあるか、一部のユーザーがそのためのPPAを作成しましたか?他に何もない場合は、ソースコードオプションを使用することもできます。

更新中に破損したパッケージの保留エラーが表示された場合は、これを試してください

これまでの説明のほとんどは、新しいアプリケーションのインストール中にこのエラーが発生することを前提としています。常にそうであるとは限りません。

sudo apt updateコマンドを使用してシステムを更新しようとしたときにこのエラーが表示された場合は、少し異なるアプローチをとる必要があります。

まず、次のコマンドでどのパッケージが保持されているかを確認します。

dpkg --get-selections | grep hold

保持されているパッケージがいくつかある場合は、それらを削除してから、システムの更新またはソフトウェアのインストールを続行します。

壊れたパッケージを修正するためにSynapticパッケージマネージャーを使用することもできます。

問題を解決できましたか?

前に述べたように、この問題の簡単な修正はありません。自分で調査して、修正できるかどうかを確認する必要があります。

問題が修正された場合は、コメントで共有してください。そうでなければ、私はあなたを助けようとするかもしれません。



Ubuntu
  1. Ubuntuおよびその他のLinuxディストリビューションにRustとCargoをインストールする方法

  2. UbuntuおよびDebianベースのLinuxディストリビューションでの「ターゲットパッケージが複数回構成されている」エラーの修正

  3. Odbcins1debian2をインストールすると、Ubuntu 20.04 Ltsへの依存関係が壊れますか?

  1. Ubuntuおよびその他のLinuxディストリビューションにVivaldiブラウザをインストールする方法

  2. Ubuntuおよびその他のLinuxディストリビューションでHuluを視聴する方法

  3. 「dpkgフロントエンドロックを取得できません。あなたは根っこですか?」 Ubuntuおよびその他のLinuxディストリビューションでのエラー

  1. Ubuntuおよびその他のLinuxディストリビューションでスナップパッケージを使用するための完全ガイド

  2. Ubuntu 20.04 FocalFossaLinuxでパッケージエラーを見つけることができません

  3. パッケージのインストールエラーを修正する方法–問題を修正できません。壊れたパッケージを保持しています