Installing Java without enter FreeBSD Jail
frank2 at fjl.co.uk
Sun Nov 17 14:57:19 UTC 2013
On 16/11/2013 19:17, Hung Son Nguyen wrote:
> I plan to write a script that automatically create FreeBSD Jail with Java
> installed. But I have problem when installing java. As I found on the
> internet, I have to install java using port collection, but how can I use
> port collection to install software without enter the Jail?
> Do we have another way to install java on FreeBSD?
> Many thanks,
First of all, you can install ports in a jail. You either copy the ports
directory there, map the ports directory using mount_nullfs, to save
disk space. This can either be r/w (but make sure only one instance is
building at a time) or you can mount it r/o, and use the variables
WRKDIRPREFIX, DISTDIR and PACKAGES to redirect the build mechanism to a
r/w area inside the jail. You can set these conveniently in
/etc/make.conf. If you leave distfiles r/o and make sure everything is
already there then there is no need for each jail to download its own
copy. If you want to make distillates r/w and you've mounted ports are
r/o you CAN mount a r/w distfiles directory over the r/o one. e.g.:
mount_nullfs -o ro /usr/ports /data/jail1/usr/ports
mount_nullfs -o rw /usr/ports/distfiles /data/jail1/usr/distfiles
Or better,optionally copy teh distfiles in to /data/jail1/var... and in
Secondly, there is more than one version of Java. The "old" one required
several manual steps to overcome licensing restrictions - see
The latest releases have OpenJDK instead - /usr/ports/java/openjdk7
Java seems to need to compile every open-source package on the planet
before it will build and install, so it could be easier to build it, and
its dependencies, once and copy the resulting binaries directly in to
every jail. Alternatively, compile the port and its dependencies and
selectively copy the bits in /usr/ports that change in to every jail -
then do the make install from the jail.
You do not need to go through all the buildworld stuff to create a jail.
You can just copy the files from an installation in to the jail
directory, as long as they are compatible with the kernel you're using.
More information about the freebsd-questions