Linux expr command vs. FreeBSD version

Sean McNeil sean at mcneil.com
Thu May 4 20:08:37 UTC 2006


On Thu, 2006-05-04 at 15:48 -0400, Kris Kennaway wrote:
> On Thu, May 04, 2006 at 10:33:03AM -0700, Sean McNeil wrote:
> > On Thu, 2006-05-04 at 12:49 -0400, Kris Kennaway wrote:
> > > On Tue, May 02, 2006 at 03:50:40PM -0700, Sean McNeil wrote:
> > > > 
> > > > I ran into a problem with paths when running linux emulation.  It
> > > > appears that when looking for a file, linux emulation will first
> > > > try /compat/linux/path and if not found, /path.  This causes grief with
> > > > expr as the Linux version supports enhancements like "expr match"
> > > > whereas the FreeBSD version does not.  To get around the issue, I put a
> > > > symlink in /compat/linux/bin/expr -> /compat/linux/usr/bin/expr. I don't
> > > > know of any better solution.  Anyone?
> > > 
> > > Why is this an issue for you?
> > 
> > Like I said, the FreeBSD expr command doesn't support things like "expr
> > match".  FreeBSD puts expr in /bin and Linux puts it in /usr/bin.
> > Appropriately, my path looks at /bin before /usr/bin.
> > 
> > I have scripts that run perfect on a Linux machine and fail on FreeBSD
> > with Linux emulation because they use that very feature.
> 
> Or just run the script in a chroot (chroot /compat/linux /bin/bash
> /your/script) so it doesn't see the FreeBSD filesystem at all.  This
> is the only safe way to do it, really - there may be other differences
> that will cause more subtle aliasing problems.

This is what I was asking (a better solution?), but unfortunately you
have to be superuser to change the root directory whereas I want to run
things as a normal user.




More information about the freebsd-emulation mailing list