Installation by users
Domain specific folders for executables and libraries
Many packages and applications can be installed locally in the $HOME directory. Users of each of the groups (e.g. 'WUR/ABGC') can deposit a map with executables or library files that can be of interest to multiple users
/cm/shared/apps/WUR/ABGC/
Preparing modules for local or domain specific use
Example of making a very simple module that would load a specific version of the short-read aligner bwa to your environment. Simple example, but demonstrates the principle. The example assumes that the executable file(s) are in:
/cm/shared/apps/WUR/ABGC/bwa/bwa-0.5.9/
create a module file
All users can store executable or library files in:
/cm/shared/apps/WUR/ABGC/
Within that folder, a modules folder was created where modules can be stored.
/cm/shared/apps/WUR/ABGC/modules
In the case of bwa, there are quite a few versions, and users may have a preference for a newer or older version, depending on your pipeline.
The first step is to create a 'root' bwa directory, where multiple module files, one for each version, can be created.
<source lang='bash'> mkdir /cm/shared/apps/WUR/ABGC/modulefiles/bwa </source>
note that this may already have been done by somebody else; pay attention not to remove existing module files.
The next step involves making a small TCL-based script. The name of the script is the version of the software that the module pertains. In this case 0.5.9.
<source lang='bash'> vi /cm/shared/apps/WUR/ABGC/modulefiles/bwa/0.5.9 </source>
A basic module script may look like this: <source lang='tcl'>
- %Module1.0#######################################################################
- bwa 0.5.9 modulefile
proc ModulesHelp { } {
puts stderr "\tAdds bwa v0.5.9 to your environment"
}
module-whatis "Adds bwa v0.5.9 to your environment"
set bwa_059_root /cm/shared/apps/WUR/ABGC/bwa/bwa-0.5.9/
prepend-path PATH $bwa_059_root
</source>
Adding a custom module directory to your environment
To allow the module
program to find the custom module directory, the location of that directory has to be added to MODULEPATH
variable.
<source lang='bash'>
export MODULEPATH=$MODULEPATH:/cm/shared/apps/WUR/ABGC/modulefiles
</source>
This can be made permanent by adding this line of code to the .bash_profile
file in the root of your home folder. To then load the modified MODULEPATH
variable you have to load .bash_profile
again:
<source lang='bash'>
source .bash_profile
</source>
This needs to be done only once. Next time you login, .bash_profile
will be loaded automatically.
You can check if the modules are found. <source lang='bash'> module avail </source> This should give output that includes something similar to this:
----------------------------------- /cm/shared/apps/WUR/ABGC/modulefiles ----------------------------------- bwa/0.5.9 bwa/0.7.5a
See also
- B4F Cluster
- Lx6 and Lx7 compute nodes
- Environment Modules
- Control R environment using modules
- Create a shortcut for the ssh log-in command
- Installing R packages locally