如何在 FreeBSD 监狱中使用 openjdk8 安装 tomcat8?

如何在 FreeBSD 监狱中使用 openjdk8 安装 tomcat8?

我有一台 FreeBSD 10.1 机器。我想在监狱里安装tomcat8和openjdk8。这个监狱只会用于少数Web应用程序,我不想安装ports集合,也不想安装其中完整的pkg管理工具。对于另一个监狱,我可以使用以下命令从主机安装所有必需的软件包:

pkg -j jail_name install package_name

问题是,当我的一个应用程序需要 jdk8 时,tomcat8 的预编译包依赖于 openjdk7。

我知道这可以通过在监狱中安装端口集合,打开防火墙以允许从监狱到全世界的连接,从端口安装所有内容,然后重新配置所有内容并删除端口集合来完成。但我宁愿不做这一切!

那么,如何在监狱中通过 openjdk8 安装 tomcat8 而不安装 ports 集合并允许从监狱连接到外部世界呢?

答案1

可以通过混合port collection和pkg工具来完成,但是有点棘手。

1 主机部分

首先安装 openjdk8 作为软件包:pkg install openjdk8

然后构建,从 ports 安装 tomcat8 的生成包。由于openjdk8已经安装,它将被ports使用

cd /usr/ports/www/tomcat8
make build
make install
make package     # <= Ok the package is in work/pkg

在构建过程中,jakarta-commons-daemon-1.0.15由于是依赖 openjdk8 构建的:也只需为其构建包:

cd /usr/ports/devel/jakarta-commons-daemon
make package     # <= Ok the package is in work/pkg

2 监狱部分

现在包已经构建好了,我们可以将它们与pkg -j jail_name add.棘手的部分是,即使命令是从主机启动的,路径也是相对于监狱根目录的!

因此,假设可以通过以下方式访问监狱文件系统/usr/jail/jail_name

cp /usr/ports/www/tomcat8/ports/pkg/tomcat*.pkg /usr/jails/jail_name/root
cp /usr/ports/devel/jakarta-commons-daemon/ports/pkg/jakarta*.pkg /usr/jails/jail_name/root

根据监狱的配置方式,您可能需要 scp 文件

现在很简单:

pkg -j jail_name add /root/jakarta-commons-daemon-1.0.15.txz
pkg -j jail_name add /root/tomcat8-8.0.18.txz

相关内容