glfs/introduction/important/position.xml
Larry Lawrence b77b166f1e more spellcheck
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@833 af4574ff-66df-0310-9fd7-8a98e5e911e0
2003-04-08 00:53:28 +00:00

83 lines
3.5 KiB
XML

<sect1 id="intro-important-position">
<?dbhtml filename="position.html" dir="introduction"?>
<title>The /usr versus /usr/local debate</title>
<para><emphasis>Should I install XXX in /usr or
/usr/local?</emphasis></para>
<para>This is a question without an obvious answer for an LFS based
system.</para>
<para>In traditional unix systems, <filename>/usr</filename> usually
contains files that come
with the system distribution, and the <filename>/usr/local</filename> tree
is free for the local administrator to add things to. The only
really hard and fast
rule is that unix distributions should not touch
<filename>/usr/local</filename>, except
perhaps for creating the basic directories within it.</para>
<para>With Linux distributions, like Red Hat, Debian etc. a possible rule is
that <filename>/usr</filename> is managed by the distribution's
package system and <filename>/usr/local</filename> is not. This way the
package manager's database knows about every file within
<filename>/usr</filename>.</para>
<para>LFS users build their own system and so deciding where the system ends
and local files begin is not straightforward. So the choice should be
made in order to make things easier to administer. There are several
reasons for dividing files between <filename>/usr</filename> and
<filename>/usr/local</filename>.</para>
<itemizedlist>
<listitem><para>On a network of several machines all running LFS, or mixed
LFS and
other Linux distributions, <filename>/usr/local</filename> could be used to
hold packages
that are common between all the computers in the network. It can be
NFS mounted or mirrored from a single server. Here local indicates
local to the site.</para></listitem>
<listitem><para>On a network of several computers all running an identical
LFS system <filename>/usr/local</filename> could hold packages that
are different between the machines. In this case local refers to
the individual computers.</para></listitem>
<listitem><para>Even on a single computer <filename>/usr/local</filename> can
be useful if you have several distributions installed simultaneously, and want
a place to put packages that will be the same on all of
them.</para></listitem>
<listitem><para>Or you might regularly rebuild your LFS, but want
a place to put files
that you don't want to rebuild each time. This way you can wipe the
LFS filesystem and start from a clean partition every time without losing
everything.</para></listitem>
</itemizedlist>
<para>Some people ask why not use your own directory tree, e.g.
<filename>/usr/site</filename> rather than
<filename>/usr/local</filename>?</para>
<para>There is nothing stopping you, many sites do make their own trees, however
it makes installing new software more difficult. Automatic installers
often look for dependencies in <filename>/usr</filename> and
<filename>/usr/local</filename>, and if the file it is looking
for is in <filename>/usr/site</filename> instead, the installer will
probably fail unless
you specifically tell it where to look.</para>
<para><emphasis>What is the BLFS position on this?</emphasis></para>
<para>All of the BLFS instructions install programs in
<filename>/usr</filename> unless specifically stated otherwise. There
are examples where some files are placed in the
<filename>/usr/local</filename> hierarchy but these are documented and
are generally for a good reason. These exceptions should be well documented
in the book. If you think you have
found one which isn't please tell us!</para>
</sect1>