aptは、生成されたパッケージと同じように提供される仮想パッケージを無視します。

aptは、生成されたパッケージと同じように提供される仮想パッケージを無視します。

欲しいpdftkのインストール私の開発コンピュータには、複数のバージョンのJavaがインストールされています。SDKMAN!。私のdefault-jre-headless依存関係を満たすためにpdftk-java作られた単純なファイルequivs-build

Section: misc
Priority: optional
Homepage: https://github.com/reitzig/sdkman-equivs
Standards-Version: 3.9.2

Package: sdkman-java-11-open
Maintainer: Raphael Reitzig <[email protected]>
Provides: openjdk-11-jre-headless, openjdk-11-jdk-headless, openjdk-11-source, default-jdk-headless, default-jre-headless
Conflicts: openjdk-11-jre-headless, openjdk-11-jdk-headless, openjdk-11-source
Replaces: openjdk-11-jre-headless, openjdk-11-jdk-headless, openjdk-11-source
Architecture: all
Description: Dummy package for OpenJDK 11 installed with SDKMAN!

その後、このパッケージをインストールしました。

equivs-build java-11-open
sudo dpkg -i sdkman-java-11-open_1.0_all.deb

効果があったようです:

$ aptitude show default-jre-headless
Package: default-jre-headless            
<snip>
Provided by: sdkman-java-11-open (1.0)

しかし、依存関係は依然として十分ではありません。

$ sudo aptitude update > /dev/null; sudo aptitude install pdftk
The following NEW packages will be installed:
  default-jre-headless{a} java-common{a} libapache-pom-java{a} libbcprov-java{a} libcommons-lang3-java{a} 
  libcommons-parent-java{a} pdftk pdftk-java{a}

と同じですapt-get。これはUbuntu 18.04にあります。

私は何が間違っていましたか?

答え1

David Foersterのpdftk-javaパッケージには、default-jre-headless (>= 7) | java7-runtime-headless次のパッケージが必要です。バージョンが付けられた"offer"(の場合default-jre-headless)または提供されたパッケージjava7-runtime-headless。 (バージョンの依存関係がdefault-jre-headless間違っているようです。デフォルトのJDK / JREパッケージは時代別のパッケージなので、すべて一致するため、最小バージョンを適用するために使用しないでください。)

equivs交換したいパッケージと同じ仮想パッケージを提供するには、ファイルを変更する必要がありますopenjdk-11-jre-headless。少なくとも、次の操作を行います。

Provides: java-runtime-headless, java10-runtime-headless, java11-runtime-headless, java2-runtime-headless, java5-runtime-headless, java6-runtime-headless, java7-runtime-headless, java8-runtime-headless, java9-runtime-headless, openjdk-11-jre-headless, openjdk-11-jdk-headless, openjdk-11-source, default-jdk-headless, default-jre-headless

openjdk-11-jre-headless(特定のコンテンツやパッケージを提供する必要はありませんが、openjdk-11-jdk-headless便宜上そのままにしておきます。)

関連情報