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