120 lines
5.2 KiB
HTML
120 lines
5.2 KiB
HTML
<html lang="en">
|
|
<head>
|
|
<title>Introduction - Stow</title>
|
|
<meta http-equiv="Content-Type" content="text/html">
|
|
<meta name="description" content="Stow">
|
|
<meta name="generator" content="makeinfo 4.13">
|
|
<link title="Top" rel="start" href="index.html#Top">
|
|
<link rel="prev" href="index.html#Top" title="Top">
|
|
<link rel="next" href="Terminology.html#Terminology" title="Terminology">
|
|
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
|
<!--
|
|
This manual describes GNU Stow version 2.2.2
|
|
(9 November 2015), a program for managing the installation of software
|
|
packages.
|
|
|
|
Software and documentation is copyrighted by the following:
|
|
|
|
(C) 1993, 1994, 1995, 1996 Bob Glickstein <bobg+stow@zanshin.com>
|
|
|
|
(C) 2000, 2001 Guillaume Morin <gmorin@gnu.org>
|
|
|
|
(C) 2007 Kahlil (Kal) Hodgson <kahlil@internode.on.net>
|
|
|
|
(C) 2011 Adam Spiers <stow@adamspiers.org>
|
|
|
|
Permission is granted to make and distribute verbatim copies of
|
|
this manual provided the copyright notice and this permission
|
|
notice are preserved on all copies.
|
|
|
|
Permission is granted to copy and distribute modified versions of
|
|
this manual under the conditions for verbatim copying, provided
|
|
also that the section entitled ``GNU General Public License'' is
|
|
included with the modified manual, and provided that the entire
|
|
resulting derived work is distributed under the terms of a
|
|
permission notice identical to this one.
|
|
|
|
Permission is granted to copy and distribute translations of this
|
|
manual into another language, under the above conditions for
|
|
modified versions, except that this permission notice may be
|
|
stated in a translation approved by the Free Software Foundation.
|
|
-->
|
|
<meta http-equiv="Content-Style-Type" content="text/css">
|
|
<style type="text/css"><!--
|
|
pre.display { font-family:inherit }
|
|
pre.format { font-family:inherit }
|
|
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
|
pre.smallformat { font-family:inherit; font-size:smaller }
|
|
pre.smallexample { font-size:smaller }
|
|
pre.smalllisp { font-size:smaller }
|
|
span.sc { font-variant:small-caps }
|
|
span.roman { font-family:serif; font-weight:normal; }
|
|
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
|
--></style>
|
|
</head>
|
|
<body>
|
|
<div class="node">
|
|
<a name="Introduction"></a>
|
|
<p>
|
|
Next: <a rel="next" accesskey="n" href="Terminology.html#Terminology">Terminology</a>,
|
|
Previous: <a rel="previous" accesskey="p" href="index.html#Top">Top</a>,
|
|
Up: <a rel="up" accesskey="u" href="index.html#Top">Top</a>
|
|
<hr>
|
|
</div>
|
|
|
|
<h2 class="chapter">1 Introduction</h2>
|
|
|
|
<p>Stow is a tool for managing the installation of multiple software
|
|
packages in the same run-time directory tree. One historical difficulty
|
|
of this task has been the need to administer, upgrade, install, and
|
|
remove files in independent packages without confusing them with other
|
|
files sharing the same file system space. For instance, it is common to
|
|
install Perl and Emacs in <samp><span class="file">/usr/local</span></samp>. When one does so, one
|
|
winds up with the following files<a rel="footnote" href="#fn-1" name="fnd-1"><sup>1</sup></a> in <samp><span class="file">/usr/local/man/man1</span></samp>:
|
|
|
|
<pre class="example"> a2p.1
|
|
ctags.1
|
|
emacs.1
|
|
etags.1
|
|
h2ph.1
|
|
perl.1
|
|
s2p.1
|
|
</pre>
|
|
<p class="noindent">Now suppose it's time to uninstall Perl. Which man pages
|
|
get removed? Obviously <samp><span class="file">perl.1</span></samp> is one of them, but it should not
|
|
be the administrator's responsibility to memorize the ownership of
|
|
individual files by separate packages.
|
|
|
|
<p>The approach used by Stow is to install each package into its own
|
|
tree, then use symbolic links to make it appear as though the files are
|
|
installed in the common tree. Administration can be performed in the
|
|
package's private tree in isolation from clutter from other packages.
|
|
Stow can then be used to update the symbolic links. The structure
|
|
of each private tree should reflect the desired structure in the common
|
|
tree; i.e. (in the typical case) there should be a <samp><span class="file">bin</span></samp> directory
|
|
containing executables, a <samp><span class="file">man/man1</span></samp> directory containing section 1
|
|
man pages, and so on.
|
|
|
|
<p>Stow was inspired by Carnegie Mellon's Depot program, but is
|
|
substantially simpler and safer. Whereas Depot required database files
|
|
to keep things in sync, Stow stores no extra state between runs, so
|
|
there's no danger (as there was in Depot) of mangling directories when
|
|
file hierarchies don't match the database. Also unlike Depot, Stow will
|
|
never delete any files, directories, or links that appear in a Stow
|
|
directory (e.g., <samp><span class="file">/usr/local/stow/emacs</span></samp>), so it's always possible
|
|
to rebuild the target tree (e.g., <samp><span class="file">/usr/local</span></samp>).
|
|
|
|
<p>For information about the latest version of Stow, you can refer to
|
|
<a href="http://www.gnu.org/software/stow/">http://www.gnu.org/software/stow/</a>.
|
|
|
|
<!-- =========================================================================== -->
|
|
<div class="footnote">
|
|
<hr>
|
|
<h4>Footnotes</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> As of Perl 4.036 and Emacs
|
|
19.22.</p>
|
|
|
|
<hr></div>
|
|
|
|
</body></html>
|
|
|