diff --git a/docs/configuration.md b/docs/configuration.md index 5aef3fc7e..3e11263ca 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -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: @@ -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 diff --git a/docs/cray-support.md b/docs/cray-support.md index bd0f2111c..3b4822cde 100644 --- a/docs/cray-support.md +++ b/docs/cray-support.md @@ -64,9 +64,9 @@ see . ### 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 diff --git a/docs/detecting-loaded-modules.md b/docs/detecting-loaded-modules.md index 61053dc25..15bfa7df7 100644 --- a/docs/detecting-loaded-modules.md +++ b/docs/detecting-loaded-modules.md @@ -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 diff --git a/docs/installation.md b/docs/installation.md index 7cd3dc61f..e705cfbe6 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -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 @@ -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 @@ -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 }