使用 FreeBSD 端口和软件包,在 FreeBSD 12 上安装 Tomcat 会安装 Java 8,而不是我已经安装的 Java 12

使用 FreeBSD 端口和软件包,在 FreeBSD 12 上安装 Tomcat 会安装 Java 8,而不是我已经安装的 Java 12

在 FreeBSD 12 上,我已经使用以下命令成功安装了 Java 12:

sudo pkg install openjdk12

etc/fstab按照该安装程序发出的文本的指示进行编辑。

然后我通过使用以下行编辑 my将其设置PATH为包含 Java文件夹。我验证了有效。bin.zshrcpath+=/usr/local/openjdk12/binjava --version

然后我去安装阿帕奇雄猫9. 我向 Ports 查了一下,发现有一个最新版本的入口,Tomcat 9.0.22。所以我跑:

sudo pkg install tomcat9

在安装过程中我很快注意到这个输出:

[2/9] 获取 openjdk8-8.212.4.1.txz: 100% 80 MiB 83.4MB/s 00:01

哇,坚持住。我不想安装旧的 OpenJDK 8。我希望 Tomcat 使用我安装的 OpenJDK 12。

➥ 如何避免安装 OpenJDK 8,而是指示安装程序(如果相关)和 Tomcat 本身使用我的 OpenJDK 12?

答案1

当预构建的二进制包不能满足您的需求时,考虑如何通过 FreeBSD 广泛的端口系统从源代码构建您需要的东西是值得的。

一些 FreeBSD 端口支持一个make config目标,允许您从各种依赖项选项中进行选择,但遗憾的是,tomcat9没有太多可以调整的配置旋钮。

FreeBSD ports 还支持make missing目标来告诉您哪些所需的 ports 或软件包尚未安装。为了方便起见,我将对make输出进行排序:

# cd /usr/ports/www/tomcat9
# make missing | sort
archivers/zip
converters/p5-Text-Unidecode
devel/autoconf
devel/autoconf-wrapper
devel/jakarta-commons-daemon
devel/m4
devel/p5-Locale-gettext
devel/p5-Locale-libintl
java/bootstrap-openjdk8
java/java-zoneinfo
java/javavmwrapper
java/openjdk8
misc/help2man
print/texinfo
textproc/p5-Unicode-EastAsianWidth

让我们看看devel/jakarta-commons-daemon依赖关系并在那里做同样的事情:

# make -C ../../devel/jakarta-commons-daemon missing | sort
archivers/zip
converters/p5-Text-Unidecode
devel/autoconf
devel/autoconf-wrapper
devel/m4
devel/p5-Locale-gettext
devel/p5-Locale-libintl
java/bootstrap-openjdk8
java/java-zoneinfo
java/javavmwrapper
java/openjdk8
misc/help2man
print/texinfo
textproc/p5-Unicode-EastAsianWidth

仔细检查这些列表会发现这devel/jakarta-commons-daemon是唯一不在两个列表中的条目。

换句话说,tomcat9 只有一个(缺失的)依赖项:devel/jakarta-commons-daemon它本身。 的所有其他缺失部分tomcat9实际上都是 的依赖项devel/jakarta-commons-daemon。所以你的问题变成了,“如何构建devel/jakarta-commons-daemon使用 jdk12 而不是默认 jdk8 的端口?”当然,我无法回答这个问题,但我希望您能从更有针对性的问题中获益。

FreeBSD 有一个特定于 java 的邮件列表。你可以在此注册。一个清晰、有记录的问题,表明研究和努力最有可能得到答复。我敢打赌,您最有可能找到知道您问题答案的人。如果您确实找到了,请返回此处并将其作为答案发布,以便未来的 StackExchange 读者可以从您的努力中受益。

您可能还有兴趣将您的电子邮件添加为抄送:这个 FreeBSD Bugzilla 条目及时了解开发工作,以改进对最新版本的 Java 开发工具包的支持。

答案2

您还可以尝试执行pkg fetch tomcat9然后pkg add -M /var/cache/pkg/tomcat9.txz安装 tomcat9 而无需提取其依赖项。

相关内容