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.
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:
PATH
LD_LIBRARY_PATH
MANPATH
LDFLAGS
and CPPFLAGS
variables, respectivelyVALET handles these changes but also allows external scripts to be written that handle the more exotic (and less common) chores that may be required.