Environment modules are used on HPC to allow multiple versions of any given piece of software to sit on the same OS, giving you the ability to choose a version of software. When viewed from an individual user point of view this may seem complex, however it is necessary in a multi-user environment.
Note: It is possible to have two or more versions of the same module loaded, but this can cause problems and should be avoided. The reason for this is often that a major version change in software can result in significantly different syntax, so software developers maintain multiple, independent streams of their software. All aliases defined above can be considered examples of this.
Listing available software and versions
Information about a piece of software (example)
Listing environment modules you have loaded.
Unloading all modules
There will be occasions where it is easier to make a fresh start, in which case you simply run the command
Loading a specific software version (example)
Loading the default version of a piece of software (example)
NOTE: The default software version will generally be the safest (e.g., version distributed by RedHat).
An example of a command to switch to another version of the same software is:
Unloading a module (example)
In some cases, you may want/need to add the version.
Information specific to JCU HPC configuration
Most module files, when loaded, will set an environment variable
<SOFTWARE>_HOME which holds the installation home for the software. For example, try
The most common environment variable modified by the loading of an environment variable is
Some other commonly modified environment variables are:
Environment modules are not usually created for Python extensions. Loading a specific python version will usually enable use of all extensions. Note that some extensions may not be available for all versions of python.
Software that includes perl extensions will usually modify the
PERL5LIB environment variables.
For Java based software, there will often be an alias set that simplifies things for users. For example a
will create a
picard alias that expands to
java -jar $PICARD_HOME/picard.jar