Newer
Older
---
title: "Modulefiles"
---
## What are modulefiles?
Modulefiles (or Lmod) is installed on almost every HPC system these days. It is a set of tcl/tk or lua scripts to swap software in and out of your current environment. It does this (mostly) by managing your environment variables, namely, `PATH` and `LD_LIBRARY_PATH`.
```bash
module avail
module list
module load eic_container
module list
module purge
module list
```
https://modules.readthedocs.io/en/latest/
## Development within singularity container
[See here](singularity) for more info on singularity.
The following helper runs bash inside `eic_container`
```bash
module load eic_container
container_dev
```
For projects that you want to build but which are also inside of the container,
you must make sure to set `$PATH` and `$LD_LIBRARY_PATH` to point to the
development build's installation prefix first. Here we assume your development
builds are being installed into `$HOME/stow/development`
A simple setup script will make sure things are in order
```shell title=setup.sh
module use $HOME/etc/modulefiles
module load eic_container
export PATH=$HOME/stow/development/bin:$PATH
export LD_LIBRARY_PATH=$HOME/stow/development/lib:$HOME/stow/development/lib64:$LD_LIBRARY_PATH
export ROOT_INCLUDE_PATH=$HOME/stow/development/include:$ROOT_INCLUDE_PATH
```