Q: Is there any use for Oracle database port installation under Linux compat root ?

Alexander Leidinger Alexander at Leidinger.net
Sun Jul 27 10:15:16 UTC 2008

Quoting "Adrian Penisoara" <ady at freebsd.ady.ro> (Sun, 27 Jul 2008 11:22:20 +0300):

> Hi,
>   I am working on a FreeBSD port for Oracle's XE database package[1] (Linux
> binaries) and I stumbled upon some issues related to USE_LINUX_PREFIX.
> Before going any further trying to support (as an option) installing the
> Oracle XE directly under the /compat/linux hierarchy (like the
> database/linux-oracle-instantclient-* ports are doing), I have to ask ask
> around the following:
> (1) Is there any real need/benefit to have an Oracle DB installation rooted
> under /compat/linux (e.g. /compat/linux/usr/lib/oracle/xe/...) ? Side note:
> in this case all shell scripts will need to be ran under
> /compat/linux/bin/bash.
> (2) How does one deal with installing manual pages and shared files with
> USE_LINUX_PREFIX -- do they also have to go under /compat/linux ? Using
> ${MANPREFIX} as a template gives wrong results in this case...

A port has to install into LINUXPREFIX, if it is an infrastructure
port (no part has to go outside this location). It has to install into
the default location (PREFIX/LOCALBASE), if it is an enduser port.
That's the easy part.

Now the classification, what is what, is the hard part. The linux
png/jpeg or whatever lib is for sure infrastructure. If this would land
in the default FreeBSD lib path, rest assured it would hurt. A linux
acroread port is an enduser application, a user will call it directly
to work with it. It also does not come with libs in the default FreeBSD
locations, so everything will be fine if it is installed in the default

For the Oracle stuff I can imagine that it is a hard question. If it
doesn't put libs into a FreeBSD lib directory (a subdirectory of a lib
directory is ok, as it will not cause immediate problems), there are no
immediate objections to putting it into the default FreeBSD location
(and as the DBA as an enduser would use it, this would fit into the
description above). But we also have the rule that nothing is allowed
to be put into the basesystem (/usr/Y instead of /usr/local/Y). Think
about jails where the base is mounted read-only and only additional
programs are in a RW part.

In the end it comes down to what you are able to do and how hard the
software is to port. Maybe it is easy to install everything into
LINUXBASE and install a wrapper into LOCALBASE (/usr/local/bin/Y would
be a script with #!/compat/linux/bin/bash and start whatever is needed
to start /compat/linux/bin/Y). Maybe the installation of the software
allows to install into /usr/local/softwarename and you can make links
from /usr/local/bin/ to it.

The rules for this are strong suggestions. If it is possible to do,
do everything you can to follow the rules, if you don't know how to
make something follow the rules, ask specific questions on ports if
someone has in idea. If there's no idea, forget the rule and try to do
something as close as possible to the goal of the rule (and document


Absolutely nothing in the world is friendlier than
a wet dog.
http://www.Leidinger.net  Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org     netchild @ FreeBSD.org  : PGP ID = 72077137

More information about the freebsd-ports mailing list