sysadmin
@
extreme.indiana.edu
|
stow user's guide
Installed Versions
1.3.2 - /l/local/packages/stow/1.3.2 (default)
Description
stow is a perl script which can generate
soft links from a package installation to a target directory. We
use it to create links from the packages directory to
/l/local.
Documentation
Getting Started
The stow manual
relates a list of terminology to help explain its function. We restate some of
it below in italics and detail how it relates to our system in regular
font.
stow terminology
- package: a related collection of files and directories that you wish to administer as a unit
(e.g., globus 1.1.3, jython 2.1a3, etc.)
- target directory: the root of a tree in which one or more packages wish to appear to be installed.
On our system, we want the most common version of all packages to appear
to be installed in /l/local.
- stow directory: the root of a tree containing separate packages in private subtrees
On our system, we don't have a single level umbrella stow directory.
In fact, we actually have multiple stow directories
/l/local/packages/<package name>
So for example the stow directory for
/l/local/packages/globus/1.1.3
is
/l/local/packages/globus
- installation image: the layout of files and directories required by a package ... Thus, the installation
image for Perl includes: a `bin' directory containing `perl' and `a2p' (among others); an `info' directory containing Texinfo
documentation; a `lib/perl' directory containing Perl libraries; and a `man/man1' directory containing man pages.
- package directory: the root of a tree containing the installation
image for a particular package
purpose
We use stow to make the common versions of packages
installed in /l/local/packages appear to be installed in
/l/local. This makes it nice because a user only has
to add /l/local/bin to their path to get all the executables
in their path, when compiling only have to add -I
/l/local/include, etc.
example
Let's assume we want to make the 1.7.7 version of graphviz appear to be
installed at /l/local. Also assume we've already installed
the 1.7.7 version of graphviz at
/l/local/packages/graphviz/1.7.7. Using stow terminology,
- package: graphviz 1.7.7
- target directory: /l/local
- stow directory: /l/local/packages/graphviz
- installation image: bin lib man
- package directory: /l/local/packages/graphviz/1.7.7
To stow, we change to the stow directory
cd /l/local/packages/graphviz
Then we run stow
stow --verbose=3 -t /l/local 1.7.7
where -t designates the target directory and
--verbose=3 designates the highest verbosity level.
Tips
- By default, stow doesn't print out the links that it
will make. Run with --verbose=3 in order to print out
actions.
- Run with the -n option first to review the links that
will be made (i.e., is it appropriate to be in /l/local?)
|