The software environment used on LinkSCEEM systems can be managed via Modules. Modules facilitate the task of updating applications and provide a user-controllable mechanism for accessing software revisions.
In this lesson, you will learn how to manage your software environment using Modules. You will learn how to load a module and learn some useful module commands.
The Modules package provides for the dynamic modification of a user's software environment via modulefiles. Modules can be used to manage:
- Multiple versions of applications, tools and libraries
- Software where complex changes to the environment are necessary
- Software where name conflicts with other software would cause problems
At login, a basic environment for the default compilers, tools, and libraries can be set by several modules commands (in the csh.cshrc, csh.login, and profile files). Modulefiles are the basic building blocks of the Modules utility. A system manager creates a modulefile that can be invoked in any script, or command line, (from any shell) as a module command to modify a user's environment (new application, tools, and utility environments).
Typically each module (modulefile) extends the PATH, MANPATH, INCLUDE, and LD_LIBRARY_PATH variables for local applications and tools; they may also be used to create variables, an alias, and functions to facilitate using special hardware. Modules has a rich language that enables the environment architect to track and react to module dependencies and to create help and instructional information (within modulefile files).
Loading a module for a particular piece of software often adds the path to the executable to $PATH, the path to the library to $LD_LIBRARY_PATH, and so on. Loading a module, then, relieves the user of having to remember or look up and type long path names.
To list all available modules on a LinkSCEEM resource, use the module avail command:
The module whatis command will display a brief description of a specific module:
Some useful module commands include:
- module avail # lists available modules
- module list # lists currently loaded modules
- module help # help on a specific module
- module whatis # brief description of a specific module
- module display # displays the changes that loading a specific module makes to the environment without actually loading it.
- module load # loads a specific module
- module unload # unloads a specific module and removes all changes that it made in the environment.
- module clear # unloads all modules (Note: this is a temporary clear; when you login again, all your default modules will be loaded.)