我想在我的开发机器上使用安装pdftk安装(多个版本) SDKMAN!。为了实现对default-jre-headless of 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 <4246780+reitzig@users.noreply.github.com>
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
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上。
我做错了什么?
发布于 2019-01-04 11:01:49
David的pdftk-java包依赖于default-jre-headless (>= 7) | java7-runtime-headless;要满足这个要求,您需要一个带有版本“default-jre-headless”(用于D2)的包,或者一个提供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包,但为了简单起见,我已经保留了它们。)
https://unix.stackexchange.com/questions/492446
复制相似问题