Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 9 additions & 10 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -492,19 +492,18 @@ A list of supported modules tools can be obtained using `eb --avail-modules-tool

Currently, the following modules tools are supported:

* `Lmod` *(default)*: Lmod, an modern alternative to environment modules, written in Lua (`lmod`)
* `EnvironmentModules`: modern Tcl-only version of environment modules (4.x) (`modulecmd.tcl`)
* `EnvironmentModulesC`: Tcl/C version of environment modules, usually version 3.2.10 (`modulecmd`)
* `EnvironmentModulesTcl`: (ancient) Tcl-only version of environment modules (`modulecmd.tcl`)
* `Lmod` *(default)*: Lmod, an alternative to Environment Modules, written in Lua (`lmod`)
* `EnvironmentModules`: Environment Modules, written in Tcl (`modulecmd.tcl`)

You can determine which modules tool you are using by checking the
output of `type -f module` (in a `bash` shell), or `alias module` (in a `tcsh` shell).

The actual module command (i.e., `modulecmd`, `modulecmd.tcl`,
`lmod`, ...) must be available via `$PATH` (which is not standard), except when using Lmod
(in that case the `lmod` binary can also be located via `$LMOD_CMD`) or when using
Environment Modules (in that case the `modulecmd.tcl` binary can also be located via
`$MODULES_CMD`).
The actual module command (i.e., `modulecmd.tcl`, `lmod`, ...) must be
available via `$PATH` (which is not standard) or:

* when using Lmod, the `lmod` binary can also be located via `$LMOD_CMD`
* when using Environment Modules, the `modulecmd.tcl` binary can also be
located via `$MODULES_CMD`

For example, to indicate that EasyBuild should be using `Lmod` as modules tool:

Expand Down Expand Up @@ -548,7 +547,7 @@ Possible values are:
!!! note
Lmod is able to deal with having module files in place in both Tcl and Lua syntax. When a module file in Lua
syntax (i.e., with a `.lua` file name extension) is available, a Tcl module file with the same name will be
ignored. The Tcl-based environment modules tool will simply ignore module files in Lua syntax, since they do not
ignored. Environment Modules tool will simply ignore module files in Lua syntax, since they do not
contain the header string that is included in Tcl module files.

!!! note
Expand Down
4 changes: 2 additions & 2 deletions docs/cray-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ see <https://github.com/eth-cscs/production/tree/master/jenkins-builds>.
### Modules tool

* Sisu: self-installed Lmod 5.8
* Piz Daint, Dora, Swan, Santis, Brisi: system-provided environment modules 3.2.10
* Piz Daint, Dora, Swan, Santis, Brisi: system-provided Environment Modules 3.2.10

Example for environment modules 3.2.10:
Example for Environment Modules 3.2.10:

``` shell
source /opt/modules/3.2.10.3/init/bash
Expand Down
4 changes: 2 additions & 2 deletions docs/detecting-loaded-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,8 @@ WARNING: Found non-allowed loaded (EasyBuild-generated) modules (Spack/0.10.0),
!!! note
Whether or not `module purge` is a suitable action is site-specific,
since this will unload *all* loaded modules (except for 'sticky'
modules when Lmod is used), including modules that were not
installed with EasyBuild and which may be always required.
modules), including modules that were not installed with EasyBuild
and which may be always required.

Configuring EasyBuild to use `module purge` when (non-allowed)
loaded modules are found should *not* be done on Cray systems, since
Expand Down
22 changes: 13 additions & 9 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ The only strict requirements are:
* Python >= 3.6 is required for EasyBuild 5.0;
* no third-party Python packages are strictly required (the Python standard library is sufficient);
* for some *specific* EasyBuild features additional Python packages are required however, see [Optional Python packages][optional_python_packages];
* a **modules tool**: Tcl(/C) environment modules or Lmod
* a **modules tool**: Environment Modules or Lmod
* the actual modules tool *must* be available via `$PATH`, see [Required modules tool][required_modules_tool]
* a C/C++ compiler (e.g., `gcc` and `g++`)
* only required to build and install GCC with, or as a dependency for the Intel compilers, for example
Expand Down Expand Up @@ -324,14 +324,14 @@ Hence, a modules tool must be available to consume module files with.

Supported module tools:

* [Tcl/C environment-modules](https://modules.sourceforge.net/) (version >= 4.3.0)
* [Environment Modules](https://modules.sourceforge.net/) (version >= 4.3.0)
* [Lmod](https://lmod.sourceforge.net) (version >= 8.0.0)

!!! note
The path to the actual modules tool binary/script used *must* be included in `$PATH`,
to make it readily available to EasyBuild.

* for Tcl/C environment modules: `modulecmd`
* for Environment Modules: `modulecmd.tcl`
* for Lmod: `lmod`

The path where the modules tool binary/script is located can be determined via the definition of
Expand All @@ -341,23 +341,27 @@ Supported module tools:
For Lmod, EasyBuild will try to fall back to finding the `lmod` binary via the `$LMOD_CMD`
environment variable, in case `lmod` is not available in `$PATH`.

For modern Tcl-only environment modules (version >= 4.0.0), EasyBuild will try to fall back to finding the
For Environment Modules (version >= 4.0.0), EasyBuild will try to fall back to finding the
`modulecmd.tcl` binary via the `$MODULES_CMD` environment variable, in case `modulecmd.tcl` is not available
in `$PATH`.


Additional notes:

* Tcl(/C) environment-modules requires [Tcl](https://www.tcl-lang.org/) to be
installed (with header files and development libraries)
* Environment Modules requires [Tcl](https://www.tcl-lang.org/) to be installed
(with header files and development libraries)
* Lmod requires [Lua](https://www.lua.org/) and a couple of non-standard Lua libraries
(`lua-posix`, `lua-filesystem`) to be available
* Tcl (`tclsh`) must also be available for Lmod to support module files in `Tcl` syntax
* a guide to installing Tcl/C environment modules without having root
permissions is available at [Installing environment modules without root permissions][installing_env_mod].
* a guide to installing Environment Modules without having root
permissions is available at [Installing Environment Modules without root permissions][installing_env_mod].
* a guide to installing Lmod without having root permissions is available at
[Installing Lmod without root permissions][installing_lmod].

* when using a hierarchical [module naming scheme][module_naming_scheme] with
Environment Modules, it is advised to activate the
[conflict_unload](https://modules.readthedocs.io/en/stable/module.html#mconfig-conflict_unload)
and [require_via](https://modules.readthedocs.io/en/stable/module.html#mconfig-require_via)
options of this modules tool

### Required Python packages {: #required_python_packages }

Expand Down