old-www/LDP/LG/issue93/lechnyr.html

167 lines
9.1 KiB
HTML

<!--startcut ==============================================-->
<!-- *** BEGIN HTML header *** -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML><HEAD>
<title>Linux Installations Paths LG #93</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
ALINK="#FF0000">
<!-- *** END HTML header *** -->
<!-- *** BEGIN navbar *** -->
<A HREF="ecol.html">&lt;&lt;&nbsp;Prev</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="index.html">TOC</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="../index.html">Front Page</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue93/lechnyr.html">Talkback</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="../faq/index.html">FAQ</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="yuan.html">Next&nbsp;&gt;&gt;</A>
<!-- *** END navbar *** -->
<!--endcut ============================================================-->
<TABLE BORDER><TR><TD WIDTH="200">
<A HREF="http://www.linuxgazette.com/">
<IMG ALT="LINUX GAZETTE" SRC="../gx/2002/lglogo_200x41.png"
WIDTH="200" HEIGHT="41" border="0"></A>
<BR CLEAR="all">
<SMALL>...<I>making Linux just a little more fun!</I></SMALL>
</TD><TD WIDTH="380">
<CENTER>
<BIG><BIG><STRONG><FONT COLOR="maroon">Linux Installations Paths</FONT></STRONG></BIG></BIG>
<BR>
<STRONG>By <A HREF="../authors/lechnyr.html">David Lechnyr</A></STRONG>
</CENTER>
</TD></TR>
</TABLE>
<P>
<!-- END header -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<body>
<h1>Linux Installation Paths</h1>
<p>When installing software, many people are confused. &quot;Should I install in /usr/sbin? /usr/local?
/usr/local/packagename?&quot; The additional belief in &quot;one right way&quot; to install software adds to this confusion. In
this short article, it is hoped that some of these confusions can be illuminated so that the user can make an informed
choice.</p>
<p>The <a href="http://www.pathname.com/fhs/">Filesystem Hierarchy Standard</a> (FHS) is a reference on how to manage a Unix
filesystem or directory hierarchy. Unfortunately many people assume it is a standard and/or tutorial, which is opposite of
their mission statement. The FHS is a subset of the <a href="http://www.linuxbase.org">Linux Standard Base</a> (LSB), which
promotes a set of standards to increase compatibility among Linux distributions and enable software applications to run on any
compliant system. However, whether intentional or not, these standards tend to be adopted by <em>Linux distribution vendors</em>
rather than by <em>software package maintainers</em>.</p>
<p>Take, for example, <a href="http://www.samba.org">Samba</a>. The default installation directory for Samba is
<code>/usr/local/samba</code>. Many people <a href="http://www.google.com/search?q=violate+fhs">complain</a> that this sort of
thing violates the FHS. What they fail to realize is what we have stated above: The adoption of the FHS seems to be encouraged
in Linux distribution vendors rather than with Linux software maintainers. It is somewhat uncertain as to why this is and
whether it is intentional or not. Regardless, the effect ends up being not unlike a dog barking at its own tail -- the audience
is complaining about one thing when it was never the focus of attention in the first place. Whether intentional or not is a
moot point at best; this is how it currently is playing out.</p>
<p>The installation location for many software packages is traditionally steeped in <a href="http://groups.google.com/groups?selm=94pcbt%2417u3%241%40FreeBSD.csie.NCTU.edu.tw&oe=UTF-8&output=gplain">historical precedence</a>. Many software maintainers assert that they install in <code>/usr/local/packagename</code> not out of any method
or philosophy, but rather because &quot;we&#39;ve always done it that way&quot;. And in the world of well-tuned software, if it
isn&#39;t broke, it isn&#39;t fixed.</p>
<p>Not that I disagree. Historical precedence is an important aspect. Alternately, the FHS has some excellent ideas towards
<a href="http://www.pathname.com/fhs/2.2/fhs-1.1.html">standardizing the location of installed files and directories</a>.
However, it is just simply that: a philosophy without encouragement of compliance. In neither focusing or encouraging their
philosophy on software package maintainers nor Linux distribution vendors, the reaction to the FHS from the Internet community
seems to reflexively be from the <em>distribution vendor</em>. In truth, this is part of the problem.</p>
<p>Focus on FHS compliance, whether intentional or not, should be placed on the software developers. This will clear up some of
the more traditional problems. For example:</p>
<blockquote><strong>Example 1: Before the advent of the FHS</strong>
<br>
A user installs RedHat Linux. After some time, she decides to upgrade one of the software packages by hand. No file location
conflicts exist, as the installation location under RedHat Linux for each software program is determined by the software
vendor. Packages installed in /usr/local/packagename will be replaced by files in the same location.</blockquote>
<blockquote><strong>Example 2: After the advent of the FHS</strong>
<br>
A user installs RedHat Linux. After some time, he decides to upgrade one of the software packages by hand. However, his
software package is installed in /usr/bin and /usr/sbin along with variable data files in /var/lib/packagename. The upgraded
software package he just downloaded installs everything by default into /usr/local/packagename. Being an average Linux user, he
is somewhat perplexed by what conflicts this may introduce into his system and is unsure how to proceed.</blockquote>
<p>Personally, I think we&#39;re focusing on the wrong angle for FHS-compliance. An alternate future reality, which would be
much better, would be:</p>
<blockquote><strong>Example 3: In the future</strong>
<br>
A user installs RedHat Linux. After some time, she decides to upgrade one of the software packages by hand. No file location
conflicts exist, as the installation location under RedHat Linux for each software program is determined by the FHS-compliant
software vendor (and not by RedHat). RedHat itself makes no modifications to the installation defaults for each software
package. Packages installed in on the system, whether by RPM or compiled by hand, will replaced files on the system in the
exact same location.</blockquote>
<p>With the upcoming release of version 2.3 of the FHS, it becomes even more important that we focus on the right issues. If we
are to succeed at minimizing confusion in the world of installable Linux software, we need to not only focus on our philosophy
and method but also on the correct audience. Hopefully, this article has helped make you more aware of the issues at hand.</p>
<hr>
<p>Some of the many distributions that attempt to maintain LFH-compliance include:</p>
<ul>
<li><a href="http://qa.debian.org/fhs.html">Debian</a></li>
<li><a href="http://linuxfromscratch.org">Linux From Scratch</a></li>
<li><a href="http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/s1-filesystem-fhs.html">Redhat</a></li>
<li><a href="http://www.sco.com">SCO (formerly Caldera OpenLinux)</a></li>
<li><a href="http://www.slackware.com/info/">Slackware</a></li>
<li><a href="http://www.suse.com">SuSE</a></li>
<li><a href="http://www.turbolinux.com">TurboLinux</a></li>
<li><a href="http://www.unitedlinux.com">UnitedLinux</a></li>
</ul>
</body>
</html>
<!-- *** BEGIN author bio *** -->
<P>&nbsp;
<P>
<!-- *** BEGIN bio *** -->
<P>
<img ALIGN="LEFT" ALT="[BIO]" SRC="../gx/2002/note.png">
<em>
David Lechnyr is a Network Administrator for the Human
Resources department at the University of Oregon. He holds a Master&#39;s Degree in Social Work along with his MCSE+I, CNE, and
CCNA certifications. He has been working with Linux for the past seven years, with an emphasis on systems security, network
troubleshooting, and PHP/MySQL integration. He is also the author of the <a href=
"http://hr.uoregon.edu/davidrl/samba/">Unofficial Samba HOWTO</a> and the <a href=
"http://hr.uoregon.edu/davidrl/lamp/">Linux+Apache+MySQL+PHP HOWTO</a>.
</em>
<br CLEAR="all">
<!-- *** END bio *** -->
<!-- *** END author bio *** -->
<!-- *** BEGIN copyright *** -->
<hr>
<CENTER><SMALL><STRONG>
Copyright &copy; 2003, David Lechnyr.
Copying license <A HREF="../copying.html">http://www.linuxgazette.com/copying.html</A><BR>
Published in Issue 93 of <i>Linux Gazette</i>, August 2003
</STRONG></SMALL></CENTER>
<!-- *** END copyright *** -->
<HR>
<!--startcut ==========================================================-->
<CENTER>
<!-- *** BEGIN navbar *** -->
<A HREF="ecol.html">&lt;&lt;&nbsp;Prev</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="index.html">TOC</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="../index.html">Front Page</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue93/lechnyr.html">Talkback</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="../faq/index.html">FAQ</A>&nbsp;&nbsp;|&nbsp;&nbsp;<A HREF="yuan.html">Next&nbsp;&gt;&gt;</A>
<!-- *** END navbar *** -->
</CENTER>
</BODY></HTML>
<!--endcut ============================================================-->