Subject: Re: X11 packages outside /usr/X11R6
To: NetBSD User's Discussion List <netbsd-users@netbsd.org>
From: Greg A. Woods <woods@weird.com>
List: netbsd-users
Date: 04/07/2002 15:52:55
[ On Sunday, April 7, 2002 at 15:54:32 (+0200), Wojciech Puchar wrote: ]
> Subject: Re: X11 packages outside /usr/X11R6
>
> > > > Reading Packages.txt, setting PREFIX to /usr is NOT recommended. And I
> > > > prefer the way it's now :)
> > >
> > > yes. this way pkg's are clearly separated from base OS.
> >
> > you ignore the needs of real users who are not unix experts and who just
> 
> so anyone that know what's up isn't real user??

Huh?  That's completely the opposite to what I actually said.  Please
read what I wrote above again, twice.

> > need to use the system (and add-on packages) to get real work done.....
> 
> but what's the difference for them?

The biggest difference is you don't have to explain why a program and
its files aren't in the same place all the other programs and their
files are, and you don't have to explain to them why they have to be
careful not to clobber the "default" PATH value (which you've of course
carefully tuned to include all these silly custom directories hoping
your users won't do exactly what they've just done).

/usr/local is one thing, and if you only put special system-specific
hacks in there then its name at least gives them half a clue.

Even long before the Mac, and of course before M$-Windows, I found users
were continually confused about such artificial separations (even when
they'd been using the system long enough to learn quite a bit they'd
still have that momentary pause and then the "Oh, Yeah!  /usr/local!"
light would come on, again and again).  These days with most people
having at least a passing acquaintance with MacOS or M$-Windows before
they get anywhere near a Unix shell prompt there's even more confusion
as to why things aren't "properly integrated" -- if a program doesn't
install itself into the start menu and the applications folder and all
that then it's "really hard to use!".

Sure there are lots of reasons for sys-admins to want to keep software
from different places compartmentalised into places where it can't be
mixed up, and most sys-admins are expert enough users to know how to
adjust the various environment variables to give things an appearance of
integration, but you can't expect ordinary users who are not unix
experts to do the same.

So you've got this huge fast system disk and you install all the system
and all the system software and packages on just three partitions: /,
swap, and /var; with all the rest of the space for /home.  How are you
going to explain, in laymans terms, why there's a separate /bin,
/usr/bin, /usr/local/bin, /usr/pkg/bin, /usr/X11R6/bin, etc.?  The best
explanation I've ever come up with that doesn't lead to too many more
questions is:  "Because that's the way it's always been done."  Which of
course leads to the question:  "Well why hasn't anyone fixed it yet?"
-- to which the only answer is:  "Because everyone's afraid to try in
case they break too many things along the way and fail."  Well I can
tell you from over five years experience now that at least with NetBSD
it's possible to integrate things much better than they are by default
(i.e. by setting PREFIX=/usr and making a few other tweaks), and you
won't break anything and your users _will_ be much happier!  At least
now I only have to explain why /bin & /sbin are separate, and then why
there's a /usr (with similarly silly /usr/sbin and /usr/bin).  Most of
my current users don't use X11 too much so don't even know there's also
a /usr/X11R6.  My explanation is of course:  "because that's the way...."  :-)

-- 
								Greg A. Woods

+1 416 218-0098;  <gwoods@acm.org>;  <g.a.woods@ieee.org>;  <woods@robohack.ca>
Planix, Inc. <woods@planix.com>; VE3TCP; Secrets of the Weird <woods@weird.com>