欲しい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
便宜上そのままにしておきます。)