実行すると、sudo apt upgrade
次のエラーメッセージが表示されます。
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:
libcurl4 : Conflicts: libcurl3 but 7.60.0-1 is to be installed
E: Broken packages
私はこの文の意味を理解しています:
- 以前に依存関係パッケージXをインストールしたため、すでにインストールされてい
libcurl4
ますlibcurl4
。 - アップグレードには、(バージョン7.60.0-1)への新しい依存関係を持つパッケージYが含まれています
libcurl3
。 libcurl3
に関連しているためインストールできませんlibcurl4
。
libcurl3とlibcurl4が必要なパッケージのリストを表示するためにGNOMEパッケージを使用しましたが、リストが長くなって範囲を狭めることはできません。特に、どのパッケージがすでにインストールされているのか、すぐにインストールされるパッケージなのかは表示されません。
適切なデバッグを試みたが、情報が追加されていないようです。
$ sudo apt -o Debug::pkgProblemResolver=yes upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Entering ResolveByKeep 10%
Dependencies are not satisfied for libcurl4:amd64 < 7.60.0-2 @ii mK Ib >
Keeping package libcurl4:amd64
Dependencies are not satisfied for libcurl4:amd64 < 7.60.0-2 @ii mK Ib >
Package libcurl4:amd64 libcurl4:amd64 Conflicts on libcurl3:amd64 < none -> 7.60.0-1 @un uN >
Dependencies are not satisfied for libcurl4:amd64 < 7.60.0-2 @ii mK Ib >
Dependencies are not satisfied for libcurl4:amd64 < 7.60.0-2 @ii mK Ib >
Dependencies are not satisfied for libcurl4:amd64 < 7.60.0-2 @ii mK Ib >
Calculating upgrade... Done
<repeats previous error message>
パッケージX(既存のパッケージ)とパッケージY(新しいパッケージまたは新しい依存関係を持つ既存のパッケージ)を識別する方法は?
答え1
パッケージのアップグレード中に競合(またはその他の問題)を引き起こすパッケージを識別するために私が見つけた最も便利な方法は、リゾルバのデバッグモードを有効にすることです。
apt -o Debug::pkgProblemResolver=yes upgrade
これにより、パーサーが直面するすべての問題と問題のある依存関係を考慮に入れたパッケージが表示されます。
答え2
@StephenKittの優れた答えに追加するもう一つの方法はaptitude
。
aptitude
通常、パッケージをよりインテリジェントに管理し、特に便利で、競合が発生した場合の代替案を提案します。
apt
使い方も、およびaptitude install
を使用するのとaptitude update
非常に似ていますaptitude upgrade
。引数なしで呼び出すと、aptitude
テキストメニューインタフェースが呼び出されます。
~からman aptitude
aptitude - パッケージマネージャ用の高度なインタフェース
aptitude は Debian GNU/Linux パッケージシステム用のテキストベースのインタフェースです。
これにより、ユーザーはパッケージのリストを表示し、パッケージのインストール、アップグレード、削除などのパッケージ管理タスクを実行できます。ビジュアルインターフェイスまたはコマンドラインから操作を実行できます。
詳細については、次を参照してください。適性 - コマンドライン参照