/compat/linux and /usr/compat/linux

Kevin Oberman rkoberman at gmail.com
Wed Feb 11 02:12:44 UTC 2015


On Tue, Feb 10, 2015 at 2:54 PM, Chris H <bsd-lists at bsdforge.com> wrote:

> On Tue, 10 Feb 2015 12:34:19 -0800 Patrick Powell <papowell at astart.com>
> wrote
>
> > On 02/08/15 02:10, Gary Jennejohn wrote:
> > > On Fri, 06 Feb 2015 08:43:15 -0800
> > > Patrick Powell <papowell at astart.com> wrote:
> > >
> > >> The latest linux-base appears to install into /compat,  rather than
> > >> /usr/compat
> > >>
> > >> However, some FreeBSD FAQ and other documents appear to refer to
> > >> /usr/compat.
> > >>
> > >> Question:  when did the move from using /usr/compat to /compat take
> > >> place (just out of curiosity)?
> > >>
> > >> Question:  can linproc be in /compat/linux/proc or
> /usr/compat/linux/proc?
> > >> Question:  if you have a /usr/compat/linux/lib directory will this be
> > >> added to the
> > >> libraries for linux emulation?
> > >>
> > > /compat has historically always been a symbolic link to /usr/compat:
> > >
> > > lrwxr-xr-x  1 root  wheel  10 Nov 25  2011 /compat -> usr/compat
> > >
> > > linprocfs on /usr/compat/linux/proc (linprocfs, local)
> > > but in my /etc/fstab I have
> > > linproc         /compat/linux/proc      linprocfs rw            0
>  0
> > >
> > > Since /compat is a symbolic link it resolves to /usr/compat when it's
> > > used.
> > >
> > # uname -a
> > FreeBSD astart2.astart.com 9.3-RELEASE-p9 FreeBSD 9.3-RELEASE-p9 #0: Tue
> > Jan 27 10:43:40 UTC 2015
> > root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
> >
> > # ls -l / |grep compat
> >
> > drwxr-xr-x   3 root  wheel    512 Dec  3 14:41 compat
> >
> > # ls -l /usr |grep compat
> > drwxr-xr-x   3 root  wheel    512 Nov 21 21:06 compat
> >
> > Note that neither /compat or /usr/compat are symbolic links.
> Interesting. On a RELENG_9 (9.3-STABLE); I only return
> /compat
> no linux, or compat available in /usr
> So what's the *real* story behind all this?
>
> > ls -ld /compat
lrwxr-xr-x  1 root  wheel  11 Feb  8 09:18 /compat@ -> /usr/compat

It is NOT created by the OS or any port, as far as I know. By default the
installation of an emulators/linux_base-* port will create /compat. Because
it can become fairly large and is in root, it was recommended some time ago
that /usr/compat be created and the contents of /compat be moved there,
/compat be deleted, and a symlink be created. Unless something was changed,
his is up to the user.

If you have both and neither is a symlink, something was not done right at
some point. Once the symlink is in place, neither an upgrade or install of
a linux_base-* port will affect it at all. It can significantly reduce the
space required in root.

I suppose it is possible that some linux ports may be installing stuff in
/usr/compat/linux instead of /compat/linux so that both show up if
/compat/linux is still in use. I hope this is not the case.
--
Kevin Oberman, Network Engineer, Retired
E-mail: rkoberman at gmail.com


More information about the freebsd-emulation mailing list