[gnu.utils.bug] Where to install gnu stuff in the file system?

bob@allosaur.cis.ohio-state.edu (Bob Sutterfield) (04/26/89)

(BTW, gnu.config is really for discussion of the configuration of the
gnu.* sub-Usenet, not for discussion of how to configure GNU software;
just as gnu.test is really for testing the extent and distribution of
gnu.*, not for discussion of testing GNU software.  I've redirected
followups to gnu.utils.bug, which is the closest to what you were
trying to find.)

In article <HAM.89Apr25211501@polya.Stanford.EDU> ham@polya.Stanford.EDU (Peter R. Ham) writes:
   Is there a standard place to install gnu stuff in a Unix file
   system?  Maybe it doesn't matter, but there must be some places
   that are more maintainable than others.  I'm planning to install
   stuff in /usr/local/src/gnu like /usr/local/src/gnu/gcc etc.

   Does this make sens? Where do other people put this stuff?

We put the sources in /usr/local/src/public/gnu, in the midst of the
rest of our source tree.

Binaries go in /usr/local/bin, which most everyone has in their path
ahead of "/usr/ucb:/bin:/usr/bin".  Where names conflict with those of
vendor-supplied programs later in the path, the name is prefixed with
a "g" (e.g.  gnm, gld, gas) so users know for sure what they're
getting.

Libraries go in /usr/local/lib, which ld(1) and gld(1) both have in
their hardwired default LDPATH after /lib and /usr/lib.  For example,
the Info tree lives in /usr/local/lib/emacs/info/*.

Manual pages (when they exist) go in /usr/man/man? rather than
/usr/local/man/man?  because of the proliferation of
manual-page-delivery programs, not all of which respect MANPATH or
MPATH or whatever.

This is, of course, not to be construed as canonical - you asked what
works for us in our environment.  No warranty expressed or implied.
Opening the shrink-wrap obligates you to nothing.  Your mileage may
vary; check with local dealers for rebate options they may offer; tax,
title, and dealer prep extra.  Stand by and remain clear of the TCA.

pardo@june.cs.washington.edu (David Keppel) (04/26/89)

ham@polya.Stanford.EDU (Peter R. Ham) writes:
>   Is there a standard place to install gnu stuff in a Unix file
>   system?


We put `unsupported' things in /uns/...

We have:

	/uns/bin -- at least one for each machine type (e.g., VAX,
		PMAX, Sequent, ...).  There is usally a `home' machine
		that all the other machines (of a given type) will NFS
		(Network File System) mount from at boot time.
	/uns/include -- same as /uns/bin
	/uns/lib -- same as /uns/bin
	/uns/man -- same as /uns/bin
	/uns/src -- a real directory on one machine, just mounted via
		NFS on most other machines.  This has a subdirectory
		`GNU' for all the GNU software.
	/uns/usr -- contains a soft link named `local' back to /uns.
		Then, when we build, say, gcc, we can just do

			make prefix=/uns
		
		and things that appear to be in, say,
		/uns/usr/local/bin, are really in /uns/bin, where we
		want them.


Works great!

	;-D on  ( Less filling, too! )  Pardo
-- 
		    pardo@cs.washington.edu
    {rutgers,cornell,ucsd,ubc-cs,tektronix}!uw-beaver!june!pardo

tale@pawl.rpi.edu (David C Lawrence) (04/26/89)

In article <HAM.89Apr25211501@polya.Stanford.EDU> ham@polya.Stanford.EDU
(Peter R. Ham) writes:
   Is there a standard place to install gnu stuff in a Unix file
   system?  Maybe it doesn't matter, but there must be some places
   that are more maintainable than others.  I'm planning to install
   stuff in /usr/local/src/gnu like /usr/local/src/gnu/gcc etc.

   Does this make sens? Where do other people put this stuff?

We do things a little differently than CIS @ Ohio State.  We set up
special accounts for large packages (such as Emacs and X) in the
passwd database, each under group "maint".  The *.pawl.rpi.edu domain
and many Suns in the *.its.rpi.edu domain run off of two file servers
which have /appl partitions for applications.  Emacs has its home
directory in /appl/imagine2/emacs.  Besides creating ~emacs/lock, the
directories ~emacs/local and ~emacs/bin were created.  local holds
mostly elisp packages but also has subdirectories for patches and
images (icons).  All bin has in it are emacs, ctags and etags
executables.  A pointer is made in /usr/local/bin to each executable
in ~emacs/bin.  That takes care of Emacs.

The rest of the GNU stuff goes into /usr/local/src/gnu/{grep/gas/etc}/*.
Executables are in /usr/local/gnu-bin.  In cases like grep, where the
name conflicts with existing names, we do not modify the name.  If
people want to use GNU, they put /usr/local/gnu-bin early in their
PATH.  

Dave
--
      tale@rpitsmts.bitnet, tale%mts@itsgw.rpi.edu, tale@pawl.rpi.edu

snoopy@sopwith.UUCP (Snoopy) (04/28/89)

In article <BOB.89Apr26093313@allosaur.cis.ohio-state.edu> bob@allosaur.cis.ohio-state.edu (Bob Sutterfield) writes:
|(BTW, gnu.config is really for discussion of the configuration of the
|gnu.* sub-Usenet, not for discussion of how to configure GNU software;

I hereby suggest the creation of gnu.misc to hold random topics that
don't have their own group.  Many other usenet branches have a misc group
and it seems to work reasonably well.  The gnu.misc group could hold
discussion on copyright (left, up, down, etc) issues, the current
"where should I put the stuff in my filesystem?" question, and other
topics that aren't specific to a particular piece of software.

|In article <HAM.89Apr25211501@polya.Stanford.EDU> ham@polya.Stanford.EDU (Peter R. Ham) writes:
|   Is there a standard place to install gnu stuff in a Unix file
|   system?

I recently created /usr/gnu, thus: /usr/gnu/bin, /usr/gnu/lib, etc.
There's getting to be enough programs that gnu deserves its own directory,
at a place reasonably low in the tree.  I then modified ghostscript to
look for ghost.ps and friends in /usr/gnu/lib/gs, so I don't have to have
them in the current directory.

It seems unlikely that everyone will agree on the 'proper' or 'best'
place to put stuff.  Perhaps we can agree on a standard set of macros
to use, and then it will be easy to configure the makefile or .h file
for a particular site.  install.h anyone?

  What's worse than biting into an apple and finding a worm?

  Finding a lawyer.

    _____     
   /_____\    Snoopy	"My dot-matrix does Postscript."
  /_______\   
    |___|     tekecs.gwd.tek.com!sopwith!snoopy		 qiclab!sopwith!snoopy
    |___|     sun!nosun!illian!sopwith!snoopy		parsely!sopwith!snoopy

prc@erbe.se (Robert Claeson) (05/08/89)

In article <162@sopwith.UUCP>, snoopy@sopwith.UUCP (Snoopy) writes:

> It seems unlikely that everyone will agree on the 'proper' or 'best'
> place to put stuff.  Perhaps we can agree on a standard set of macros
> to use, and then it will be easy to configure the makefile or .h file
> for a particular site.  install.h anyone?

Make that hardwired configuration a default that can be overriden
by using an environment variable. It simplifies things sooo much.
-- 
Robert Claeson, ERBE DATA AB, P.O. Box 77, S-175 22 Jarfalla, Sweden
Tel: +46 (0)758-202 50  Fax: +46 (0)758-197 20
EUnet:   rclaeson@ERBE.SE               uucp:   {uunet,enea}!erbe.se!rclaeson
ARPAnet: rclaeson%ERBE.SE@uunet.UU.NET  BITNET: rclaeson@ERBE.SE