저는 FreeBSD 10.1 머신을 가지고 있습니다. 감옥에 tomcat8과 openjdk8을 설치하고 싶습니다. 이 감옥은 몇 가지 웹 응용 프로그램에만 사용되며 포트 컬렉션이나 그 안에 전체 패키지 관리 도구를 설치하고 싶지 않습니다. 다른 감옥의 경우 다음을 사용하여 호스트에서 필요한 모든 패키지를 설치할 수 있습니다.
pkg -j jail_name install package_name
문제는 내 애플리케이션 중 하나에 jdk8이 필요한 경우 사전 컴파일된 tomcat8 패키지가 openjdk7에 의존한다는 것입니다.
감옥에 포트 컬렉션을 설치하고, 방화벽을 열어 감옥에서 세계로의 연결을 허용하고, 포트의 모든 것을 설치한 다음, 모든 것을 재구성하고 포트 컬렉션을 제거하면 이 작업을 수행할 수 있다는 것을 알고 있습니다. 하지만 난 이 모든 걸 하지 않는 게 낫겠어!
그렇다면 포트 컬렉션을 설치하지 않고 감옥에서 openjdk8을 통해 tomcat8을 설치하고 감옥에서 외부 세계에 대한 연결을 허용하는 방법은 무엇입니까?
답변1
포트 컬렉션과 pkg 도구를 혼합하여 수행할 수 있지만 약간 까다롭습니다.
1 호스트 부분
먼저 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
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