VALET Automates Linux Environment Tasks
Introduction
One particularly annoying aspect of cluster computing for most users is getting the environment setup properly given a set of requisite libraries and applications. Quite often in a cluster environment there are multiple versions of a library available at any one time, and knowing which to use when running a program can often mean the difference between predictable, correct results and a flawed or even failed execution.
A piece of software called (quite simply) "modules" has been around for quite some time to address the complexities of environment configuration for users. The tool itself is fairly complex, both in the commands it offers the user and the manner by which environment modifications are specified (a modulefile).
VALET – a recursive acronym for VALET Automates Linux Environment Tasks – is an alternative that strives to be as simple as possible to configure and to use.
Typical Changes to the Environment
There are often only a few kinds of changes that need to be made to the environment for a given software package, be it a library or an application:
- Directory(s) containing executables must be added to the
PATH
- Directory(s) containing shared libraries must be added to the
LD_LIBRARY_PATH
- Directory(s) containing man pages must be added to the
MANPATH
- The value of arbitrary environment variables must be set or augmented
- In a software development scenario, library and header directories must be added to the
LDFLAGS
andCPPFLAGS
variables, respectively
VALET handles these changes but also allows external scripts to be written that handle the more exotic (and less common) chores that may be required.