我有一台FreeBSD 10.1机器。我想在监狱里安装tomcat8和openjdk8。这个监狱只用于很少的web应用程序,我不想安装端口集合,也不想在其中安装完整的pkg管理工具。对于另一个监狱,我可以通过以下方式从主机安装所有必需的包:
pkg -j jail_name install package_name问题是,当我的一个应用程序需要一个tomcat8时,openjdk7的预编译包依赖于jdk8。
我知道这可以通过在监狱中安装端口集合、打开防火墙以允许从监狱连接到整个世界、从端口安装所有东西、然后重新配置所有端口和删除端口集合来实现。但我不想这么做!
那么,在不安装端口集合和允许从监狱到外部世界连接的情况下,如何通过tomcat8在监狱中安装openjdk8呢?
发布于 2015-06-25 12:09:51
它可以通过混合端口集合和pkg工具来完成,但这有点棘手。
首先将openjdk8作为一个软件包安装:pkg install openjdk8
然后构建,从端口为tomcat8安装一个生成包。由于openjdk8已经安装,它将由端口使用。
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现在包已经构建好了,我们可以将它们与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.txzhttps://unix.stackexchange.com/questions/212107
复制相似问题