getting to /usr but not /compat/usr from a linux app
kruptos at mlinux.org
Wed Jun 28 21:06:17 UTC 2006
On Wednesday 28 June 2006 13:53, Charles Swiger wrote:
> On Jun 28, 2006, at 1:21 PM, Fernan Aguero wrote:
> > I'm using Linux Firefox, and when asked to choose a helper
> > app to open a document I try to navigate to /usr/X11R6/bin
> > but I always end up in /compat/linux/usr/X11R6/bin instead
> > (though firefox believes it's /usr/X11R6/bin).
> > I can see why this happens (linux apps should be fooled into
> > using their 'compat' usr space), but is there any way of
> > escaping from this?
> The Linux app is being run inside of a chroot()ed environment in
> order to give the appearance that they are running in a "real Linux
> system"; you can't escape a chroot() environment (hopefully), but you
> could create hard links or copy files from the FreeBSD /usr/X11R6/bin
> to the Linux environment...
This is not 'exactly' true. The program is not being run in a chroot
environment. Easily demonstrated by the fact that linux programs can access
file in user's home directories without any difficulty. There are other
ways to show this... but the main thing is distinct paths. The programs
default to /compat/linux/whatever if whatever exists in both places.
You really just need to specify enough of the path manually that the program
sees the file outside of /compat/linux. For example, I had to type the
complete path for "/usr/X11R6/bin/acroread" into one program for it to show
up. But once the complete path is there, the program doesn't have a problem
If you get to a part where the program seem stuck (you know there is a
different directory you need to enter but you're in the /C/L tree, and all
you have is a place to type the filename... try 'directory/<enter>' and most
programs take the hint and move you up.
Hope this helps.
More information about the freebsd-ports