sysadmin
@
extreme.indiana.edu


Home
Machines
CSG
    Support
    Packages
Lab
    User's Guide
    Sysadmin's Guide
    Packages
Projects
    Portal
    LEAD
    Grid Info

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?)

Last updated 31 Mar 2006 by machrist@cs.indiana.edu