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

From: Alan Somers <asomers_at_freebsd.org>
Date: Fri, 16 Jul 2021 11:11:58 -0600
On Fri, Jul 16, 2021 at 10:46 AM Ian Lepore <ian_at_freebsd.org> wrote:

> On Fri, 2021-07-16 at 09:01 -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?
> > -Alan
>
> I have a hierarchy on my machines rooted at /local and /local/bin is
> before /bin and /usr/bin in my PATH, so I can override system tools
> when I explicitly want to without suffering any problems of an
> unexpected override from installing a port or package.
>
> If you're using ports as a development environment to work on a new
> gstat replacement, you could do something similar and put PREFIX=/local
> in your port makefile while you're developing on it.
>
> -- Ian
>

Thanks for the feedback everyone.  Here's what I'm going to do:
* If you install it from cargo, it will go into ~/.cargo/bin/gstat, which
(for cargo users) comes first in PATH
* If you install it from ports, it will become /usr/local/sbin/gstat-rs,
with a pkg-message advising you to setup an alias.

-Alan
Received on Fri Jul 16 2021 - 17:11:58 UTC

Original text of this message