environment-modules Lmod alternatives and similar tools
Based on the "Build and software organization tools" category
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of environment-modules Lmod or a related project?
Lmod is program to manage the user environment under Unix: (Linux, Mac OS X, ...). It is a new implementation of environment modules.
Lmod Web Sites
- Documentation: http://lmod.readthedocs.org
- Github: https://github.com/TACC/Lmod
- Sourceforge: https://lmod.sf.net
- TACC Homepage: https://www.tacc.utexas.edu/research-development/tacc-projects/lmod
- Lmod Test Suite: https://github.com/rtmclay/Lmod_test_suite
Lmod Mailing list
Please go to https://lists.sourceforge.net/lists/listinfo/lmod-users to join.
Lmod Source Management
The most up-to-date source will be at github. All known bugs have been fixed if it is released on github. When there has been sufficient improvement or important bugfixes there is a new release at sourceforge.
Support for Lua 5.4 added.
Improved support for ksh and ksh scripts.
Improved documentation for software hierarchy and community module collections.
Handle exit in TCL modulefile; Handle os.exit() when performing spider
Now handles /bin/dash startup.
Support improved for fish shell
The function extensions() now takes a string of comma separated names. This is to get around the number of arguments limit in Lua.
Add support for "atleast()" and "between()" functions support a "<" to signify a less than instead of less than or equal to between range.
Make "ml - foo" an error.
It is now safe to have os.exit(1) in a modulefile. Spider can now handle it.
Better support for the fish shell including tab completion (Thanks Alberto!)
New function extensions(): This allows for modules like python to report that the extensions numpy and scipy are part of the modules. Users can use "module spider numpy" to find which modules provide numpy etc.
Added a new command "clearLmod" which does a module purge and removes all LMOD aliases and environment variables.
Remove asking for the absolute path for generating spiderT and dbT. It now only use when building the reverseMapT.
Lmod now requires "rx" other access when searching for modulefiles.
settarg correctly handles a power9 processor running linux.
Extended Default feature added: module load intel/17 will find the "best" intel/17.* etc.
All hidden files are NOT written to the softwarePage output.
Lmod now correctly reports failed to load module "A" in the special case where "ml A B" and A is a prereq of B and A doesn't exist.
A meta module takes precedence over a regular module if the meta module occurs in an earlier directory in $MODULEPATH
Lmod output only "fills" when the text is more than one line or it is wider than the current width.
Embed the TCL interpreter in Lmod when a site allows TCL files
"module reset" resets $MODULEPATH to be the system $MODULEPATH
Improved tracing of module loads/unloads when --trace is given.
Allow MODULERCFILE to be a colon separated list.
Always use ref. counting for MODULEPATH.
Make LMOD_RC support a colon separated list of possible lmodrc.lua files.
General support for "MODULERC" files written in lua.
Just use lua_json provided with Lmod distribution
Change ml so that ml av --terse is an error.
Allow sites to completely control prefix location of lmod.
Support "make -j install"
Lmod now uses reference counting for PATH-like variables
Support for MODULEPATH_INIT. If found use /init/.modulespath to specify initial MODULEPATH.
Tracing now reports changes to MODULEPATH
Support for ml keyword added
Lmod now uses the spider cache when restoring when LMOD_CACHED_LOAD=yes
Lmod now supports a module with a single leading underscore. It reports an error if there are two or more.
Support for disable
A marked default is honored even if it is hidden
Support for depends_on() as a better way to handle module dependencies.
Added -T, --trace option to report restore, load, unloads and spider.
Report both global and version aliases with module --terse Add Global Aliases output to module avail if they exist.
Support for isVisibleHook (Thanks @wpoely86!) to control whether a module is hidden or not.
Support for "spider -o spider-json" to set the key "hidden" to true or false for each module.
Setting LMOD_EXACT_MATCH=yes also turns off the display of (D) with avail.
CMake "shell" added.
Added feature that LMOD_TMOD_FIND_FIRST. A site can decide to force FIND_FIRST instead FIND_BEST for NV module layouts.
Fix bug where Lmod would be unable to load a module where NV and NVV module layouts were mixed.
Fix bug where LMOD_CASE_INDEPENDENT_SORTING=yes wasn't case independent when using avail hook.
Using built-in luafilesystem if system version doesn't exist or < 1.6.2
Support for setting LMOD_SYSHOST with configure.
Sites or users can use italic instead of dim for hidden modules
Detailed spider output reports all dependencies hidden or not.
Support for fish shell
Move almost all configuration variables from profile.in to bash.in and similarly for tcsh.
Fixed bug that caused LMOD env vars to be lower cased.
Fixed bug where tcsh/csh exit status was not returned.
bash and zsh tab completions works when LMOD_REDIRECT is yes.
Can now conflict with a version.
Fixed bug with addto a:b:c
Fixed bugs in computeHashSum, generating softwarePage.
The isloaded() function has been repaired.
Updated French, German and Spanish translations.
Two error message related to missing modules are now available for translations.
A test suite for testing the Lmod installation has been added. See https://github.com/rtmclay/Lmod_test_suite for details.
Added support for localization of errors and warnings and messages.
Language Translations complete: ES, Partial: FR, ZH, DE
Introduced "errWarnMsgHook" to take advantage of the new message handling.
Several bug fixes related to Spider Cache and LMOD_CACHED_LOADS=1
Repaired zsh tab completion.
Minimize the output of Lmod's BASH_ENV when debugging Bash shell scripts.
Allow colons as well as spaces for the path used in the addto command.
Handles module directories that are empty or bad symlink or a .version file only.
Fix bug in module describe.
The commands "module --show_hidden avail" and "module --show_hidden" list now show "hidden" modules with the (H) property. Also they are displayed as dim. This works better on black backgrounds.
Added the command "module --config_json" to generate a json output of Lmod's configuration.
Add support for env. var. LMOD_SITE_NAME to set a site's name. This is also a configure option.
Hidden module now will not be marked as default.
Now check permission of a directory before trying to open it.
Lmod now does not pollute the configure time value of LD_LIBRARY_PATH and LD_PRELOAD into the users env.
Lmod now handles illegal values of $TERM.
This version support N/V/V. (e.g. fftw/64/3.3.4). Put a .version file in with the "64" directory to tell Lmod where the version starts.
Marking a default in the MODULERC is now supported.
User ~/.modulerc has priority over system MODULERC.
System MODULERC has priority over marking a default in the module tree.
Installed Modules can be hidden by "hide-version foo/3.2.1" in any modulerc file.
The system spider cache has changed. Please update your scripts to build spiderT.lua instead of moduleT.lua
For information to version changes for Lmod before 7.0 see [README.old](README.old)