stash - The solution to stubborn system administrators.
Table of Contents
What is it?
stash is a perl script that aims to make it easier for you to install,
track, and maintain packages and modules in your home directory. It
performs this magic by detecting what type of package or module you are
installing and passing all the right command line arguments to the
confgure scripts and/or makefiles.
stash is similar in many ways to GNU stow and stowES.
Read the man page for full details.
Why was it written?
stash was inspired by my need to install stuff in my home directory where
I work. Sometimes the sys admins are stubborn. Sometimes they're too
busy. Sometimes I'm just impatient. Regardless, stash allows me to get on
with my work day while still using the tools I want....
- Supports two stash directories per machine; an architecture
independent one and an architecture dependent one. This makes it
possible for stash to work when your home directory is mounted on
several boxes of differing platforms.
- Support for autoconf generated configure scripts
- Support for some autoconf look-alike configure scripts
- Support for Imakefiles
- Support for perl Makefile.PL files
- Support for python setup.py files
- Support for PMK configure scripts
- Support for ant build.xml files (VERY minimal)
- If none of the above works, tries to auto-edit Makefiles
- Support for pre-configure scripts
- Properly handles conflicting info/dir files.
- Properly handles conflicting perlocal.pod files.
Bugs & Limitations
- Does not (cannot) handle every possible package out there. User
intervention is, sometimes, required.
- While every effort was made to ensure that stash detects packages
correctly, there are many non-standard packages out there. This
is most harmful when a package doesn't obey the "normal"
rules that 90% of the other packages of that type obey.
- Support for Ant is currently VERY limited. Please send me updates
and ideas on this... I know very little about Ant.
- stash needs to be tested (and possibly ported) to earlier versions
of perl so that it is more portable. It was developed under perl
5.6 and the author hasn't tested it on earlier versions.
How to Help
If you use stash and want to help make it better, the best thing you can
do is send me patches to the source that fix or extend it in someway. New
packages under the Stash::Package heirarchy are strongly encouraged. If
you are not a coder, I would still appreciate any and all reports of
success or failure utilizing stash. If you had to manually configure or
install a package before stashing it, send me the package url and how you
got it to install correctly into the stash directories. Please DO NOT
email me source or binary tarballs of packages!
The download links are below. Installation instructions are included in
the tarball. I highly suggest you read the INSTALL and README files so
that you can fully understand stash. I do ask that if you add any
features or fix any bugs that you e-mail
me your changes. If you find any bugs, send them to me along with
information about what version of perl you are using. Maybe I'll get
around to fixing them...
Download the latest version (0.4.11):