APTの依存関係の問題を解決するにはどのような情報が必要ですか?

APTの依存関係の問題を解決するにはどのような情報が必要ですか?

私は人々が満たされていない依存関係を持っていて、apt-getが次のような問題が何であるかを直接伝えていない場合を何度も見ました。

The following packages have unmet dependencies:
 libgl1-mesa-dri:i386 : Depends: libdrm-intel1:i386 (>= 2.4.38) but it is not going to be installed
                        Depends: libdrm-nouveau2:i386 (>= 2.4.38) but it is not going to be installed
                        Depends: libdrm-radeon1:i386 (>= 2.4.31) but it is not going to be installed
                        Depends: libdrm2:i386 (>= 2.4.38) but it is not going to be installed
                        Depends: libglapi-mesa:i386 but it is not going to be installed
 libgl1-mesa-glx:i386 : Depends: libdrm2:i386 (>= 2.3.1) but it is not going to be installed
                        Depends: libglapi-mesa:i386 (= 9.2.1-1ubuntu3) but it is not going to be installed
                        Depends: libx11-6:i386 (>= 2:1.4.99.1) but it is not going to be installed
                        Depends: libxcb-dri2-0:i386 (>= 1.8) but it is not going to be installed
                        Depends: libxcb-glx0:i386 (>= 1.8) but it is not going to be installed
                        Depends: libxcb1:i386 but it is not going to be installed
                        Depends: libxdamage1:i386 (>= 1:1.1) but it is not going to be installed
                        Depends: libxext6:i386 but it is not going to be installed
                        Depends: libxfixes3:i386 but it is not going to be installed
                        Depends: libxxf86vm1:i386 but it is not going to be installed

利用可能なものが見つかるまで、すべての依存関係を繰り返すことは痛みを伴うことに気づいていますが、apt-get install libgl1-mesa-dri:i386 libdrm-intel1:i386この場合、パッケージの数は痛いでしょう。これを行うより簡単な方法はありますか?

ベストアンサー1

最初にすべき合理的なことは、なぜ今やっていることをしているのか尋ねることです。これはオプションで行うことができます-o Debug::pkgProblemResolver=yes。例えば

apt-get -o Debug::pkgProblemResolver=yes install libgl1-mesa-dri:i386 libdrm-intel1:i386

aptが発生しない場合、これらの問題をデバッグする標準的な方法は、エラーメッセージに記載されている各パッケージの利用可能なバージョンの優先順位番号を確認することです。これは一般的にapt-cache policy

たとえば、エラーメッセージの最初の部分のみを使用するには、次のようにします。

apt-cache policy libgl1-mesa-dri:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libglapi-mesa:i386

進行方法は、これが示す内容によって異なります。ただ実行することもしばしば便利です。

apt-cache policy

これにより、利用可能なすべてのパッケージソースとその優先順位番号が表示されます。この情報は通常、両方/etc/apt/sources.listまたは両方に割り当てられます/etc/apt/sources.list.d

ここで助けを求める人は、まずこのコマンドの結果を投稿する必要があります。彼らの質問に。これは問題を識別するのに十分な情報かもしれません。

実生活の問題の例:

  1. バックポートリポジトリを使用した後に満たされない依存関係:ユーザーはソースを含めましたが、www.deb-multimedia.org低い優先順位に固定していません。低い優先順位に固定せずにサードパーティのソースを含めないでください。デフォルトバージョンのパッケージを提供する適切に機能するリポジトリにはこれは必要ありませんが、www.deb-multimedia.orgDebianと互換性がないことが知られているため、一般的に不明なソースを信頼してはいけません。より一般的に言えば、リポジトリがシステムに適していないことがわかっている場合は、そのリポジトリをより低い優先順位に固定してください。たとえば、Debian stableのtest / unstableソースです

  2. 満たされていない依存関係: ユーザーがシステムのデフォルトバージョンではなく、Pythonバージョンをインストールしました。当然、すべての地獄が解放されます。要点は、システムに適したパッケージバージョンのみをインストールする必要があることです。上でapt-cache policy pkgname言いましたね。

  3. dpkg/apt-getが別のパッケージをインストールして上書きしようとします。:ユーザーはプライマリdpkgデータベースが破損しているにもかかわらず、パッケージをインストールしようとします。倫理的にdpkg問題があるというメッセージがパッケージに表示された場合

    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 2 not  
    fully installed or removed. 
    

    パッケージデータベースに問題があります。他のものをインストールする前に問題を解決してください。機能しない場合は、問題を解決するためのapt-get -f install措置を講じる必要があります。dpkg

おすすめ記事