APTは私のパッケージの依存関係が壊れているか満たされていないと文句を言いますが、私のリポジトリで利用できます。どうすれば修正できますか?

APTは私のパッケージの依存関係が壊れているか満たされていないと文句を言いますが、私のリポジトリで利用できます。どうすれば修正できますか?

PACKAGE私は依存関係を持つパッケージの適切なリポジトリを管理します(DEPENDENCY<<1.2)PACKAGEどちらもDEPENDENCY私のリポジトリで利用可能です。

今バージョン(バージョン4.0.0)をリリースしましたDEPENDENCY。今、同じバージョンをインストールしてください。PACKAGE 完全にきれいな機械でエラーが原因で失敗します。

The following packages have unmet dependencies:
 PACKAGE : Depends: DEPENDENCY (< 1.2.0) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

利用可能なDEPENDENCYバージョンを確認すると、要件を満たす既知のパッケージがあることがわかります<< 1.2

sudo apt list -a DEPENDENCY
Listing... Done
DEPENDENCY/stable 4.0.0 all
DEPENDENCY/stable 1.1.12 all
DEPENDENCY/stable 1.1.11 all
DEPENDENCY/stable 1.1.10 all
...

私は実際にパッケージを管理しているのでそしてリポジトリ側でこの依存関係を解決できますが、どうすればよいですか?apt正しい依存関係が認識されないのはなぜですか?

apt --fix-broken(パッケージがサーバー側で破損しているため、これは機能しません。)

ベストアンサー1

APTは、要件に基づいてパッケージのバージョンを確認するのではなく、可用性(および優先順位)に基づいてパッケージのバージョンを確認します。つまり、実際には一貫したリポジトリで動作するように設計されています。つまり関連するすべてのパッケージをリポジトリのバージョンと共にインストールできる単一のバージョンのパッケージを持つリポジトリ。 (これはDebianリポジトリがほとんどの場合動作する方法であり、リポジトリを公開するための要件です。)

DEPENDENCY同じスイートで複数のバージョンを使用できますが、特に指定のない限り、APTは最高のバージョン4.0.0のみを考慮します。

APTが状況を解決するために手作業で手助けする必要があるかもしれません。

apt install PACKAGE DEPENDENCY=1.1.12

それにもかかわらず、これが効果があるかどうか100%確信することはできません。

一般的な解決策として、リポジトリで別のパッケージを使用し、同じパッケージに相互に許容可能なバージョンがあることを確認する必要があります。したがって、バージョン4.0.0は、PACKAGE互換性のあるバージョンが出るまで他のパッケージには入りません。DEPENDENCYDEPENDENCYPACKAGEPACKAGE

おすすめ記事