Re: PATH: /usr/local before or after /usr ?

From: Alan Somers <asomers_at_freebsd.org>
Date: Fri, 16 Jul 2021 16:11:41 UTC
On Fri, Jul 16, 2021 at 9:54 AM Cameron Katri via freebsd-current <
freebsd-current@freebsd.org> wrote:

> On Fri, Jul 16, 2021 at 09:01:49AM -0600, Alan Somers wrote:
> > FreeBSD has always placed /usr/local/X after /usr/X in the default PATH.
> > AFAICT that convention began with SVN revision 37 "Initial import of
> 386BSD
> > 0.1 othersrc/etc".  Why is that?  It would make sense to me that
> > /usr/local/X should come first.  That way programs installed from ports
> can
> > override FreeBSD's defaults.  Is there a good reason for this convention,
> > or is it just inertia?
>
> The biggest example I can think of this being a problem is having
> binutils installed, it will cause any calls to elftoolchain or
> llvm-binutils to go to GNU binutils which is platform specific, so cross
> compiling, or LTO could be broken because of using GNU binutils which
> don't support cross compiling or LTO.
>
> - Cameron Katri
>
> > -Alan
>

Ugh, that's a good example.  I was thinking more about interactive
programs, like say /usr/bin/vi vs editors/vim.  Hypothetically how would
one solve the conflict if /usr/local/bin came before /usr/bin ?  Install
binutils's binaries to /usr/local/libexec/binutils/ ?  But a lot of ports
depend on binutils.  That would be a ton of ports to update.

BTW my motivation for this thread is a new replacement for gstat that I'm
working on.  I would like to name it "gstat", but if /usr/sbin must come
before /usr/local/sbin, then that won't be a very helpful name.
-Alan