Why /usr/bin instead of /usr/local/bin for gnu stuff?

Why /usr/bin instead of /usr/local/bin for gnu stuff?

Post by tim wern » Thu, 30 Mar 1995 04:00:00



Hi,

I was going to upgrade gcc for my machine, and I noticed that what I
have is in a non-standard (according to GNU docs) place.

Can anyone tell me why this is?

I tried to use the config/linux.h that comes with gcc-6.2.3, and it set
me up for /usr/local/bin, /usr/local/lib, /usr/local/info, and
/usr/local/include.  I was going to just go ahead with that, but I'm
concerned about becoming a non-standard Linux.

Also, I noticed the same thing about emacs.  What I have is in /usr/bin,
insead of /usr/local/bin, where it is everywhere else in the world.

Was this just a Pat Volkerding decision (I have slackware), or was there
some discussion about it, and it actually makes sense, and all the
distributions are doing it that way?  Is Debian the same?

If indeed the Linux standard place for the gnu stuff is /usr/bin, etc.,
shouldn't we let them know at FSF, so they can fix the config/linux.h
file?

thanks,
tw

--
Do not drink coffee in early A.M.  It will keep you awake until noon.

 
 
 

Why /usr/bin instead of /usr/local/bin for gnu stuff?

Post by Daniel Barl » Fri, 31 Mar 1995 04:00:00




Quote:>Also, I noticed the same thing about emacs.  What I have is in /usr/bin,
>insead of /usr/local/bin, where it is everywhere else in the world.

It's actually a simple thing: /usr is for software that comes with the
distribution, /usr/local is for user-supplied software.  The relevant
bit of the FSSTND (File-System Standard) says:

|4.7 /usr/local: Local Hierarchy
|
[...]
|
|This directory should always be empty after first installing Linux. No
|exceptions to this rule should be made other than the listed directory
|stubs.
|
|Locally installed software should be installed within /usr/local
|rather than /usr unless it is being installed to replace or upgrade
|software in /usr.

Quote:>Was this just a Pat Volkerding decision (I have slackware), or was there
>some discussion about it, and it actually makes sense, and all the
>distributions are doing it that way?  Is Debian the same?

All the distributions *should* be doing it, if thay claim fsstnd
compliance (most do, afaik).  It makes sense, really.  The only reason
that most Unices have everything in /usr/local is that the local admin
staff have to install all the useful stuff themselves instead of
getting it ready-built with the system ;-)

Quote:>If indeed the Linux standard place for the gnu stuff is /usr/bin, etc.,
>shouldn't we let them know at FSF, so they can fix the config/linux.h
>file?

No.  It's still a matter of policy.  If you are a distribution
maintainer (or like me, and never let a distribution anywhere near
your machine) then you put them in /usr.  Most stuff, all you need to
do is type './configure --prefix=/usr'

Daniel
--

`When you say "I wrote a program that crashed Windows", people just stare at
you blankly and say "Hey, I got those with the system, *for free*".'
                                        -- Linus Torvalds

 
 
 

Why /usr/bin instead of /usr/local/bin for gnu stuff?

Post by James LewisMo » Sat, 01 Apr 1995 04:00:00



>Hi,
>I was going to upgrade gcc for my machine, and I noticed that what I
>have is in a non-standard (according to GNU docs) place.
>Can anyone tell me why this is?
>Was this just a Pat Volkerding decision (I have slackware), or was there
>some discussion about it, and it actually makes sense, and all the
>distributions are doing it that way?  Is Debian the same?
>If indeed the Linux standard place for the gnu stuff is /usr/bin, etc.,
>shouldn't we let them know at FSF, so they can fix the config/linux.h
>file?

Actually It kinda makes sense.  On other unix machines, they already
have al the basic system utils in /usr, the gnu utils go in /usr/local
for those users who want to use the gnu equivalent.  On Linux the gnu
utils are the base utils.  There is no cc that isn't gcc.  Etc.  I'm
sure there are some alternatives to gnu programs (freebsd utils maybe),
but generally the utils are gnu.

And as another poster pointed tou just type "./configure --prefix=/usr"
to get the gnu utils to default to /usr/rather than /usr/local.

Quote:>thanks,
>tw

jim

--
-------------------------------------------------------------
James LewisMoss  University of South Carolina |Blessed Be!

-------------------------------------------------------------
"Argue for your limitations, and you get to keep them."
                                      Richard Bach

 
 
 

Why /usr/bin instead of /usr/local/bin for gnu stuff?

Post by Andrew Cromar » Tue, 04 Apr 1995 04:00:00



>I was going to upgrade gcc for my machine, and I noticed that what I
>have is in a non-standard (according to GNU docs) place.
>Can anyone tell me why this is?

The File System Standard (FSSTND) says /usr/bin is for binaries
meant to be used by users, not just root (hence the "/bin" part)
and not requried to be availabled when the first disk mounts at boot
time (hence the "/usr" part).  

/usr/local/... is for things *you* put on your machine.
The software that comes as part of your release (e.g. Slackware)
should not be in /usr/local/...  /usr/local should be empty when
you do a fresh install.

This is very useful when you do an upgrade.  It means the software you
added to the distribution while customizing your machine is in a separate
directory structure, theoretically guaranteed not to get trashed when you
load a new Linux release onto your system.  The distinction also has the
obvious corresponding advantages for your backup strategy.  

("What backup strategy?", I hear 1000 readers say to themselves.  
Shame on you.)

Take a look.  The FSSTND is available on tsx-11.mit.edu via anon
FTP as something like fsstnd-1.2.{ps,txt}.gz, in something like
/pub/Linux/doc or the like.

   cheers               asc