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 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.
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 BASHENV 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
Now uses the value of LD_PRELOAD and LD_LIBRARY_PATH for run all TCL progams.
Now uses a custom _module_dir function for tab completion in bash for module use path. Thanks to Pieter Neerincx!
Support for LMOD_FAMILY__VERSION added.
If ~/.lmod.d/.cache/invalidated exists then the user cache file(s) are ignored. When generating a user cache file ~/.lmod.d/.cache/invalidated is deleted.
Correctly merges spider cache location where there are multiple lmodrc.lua files.
Remove leading and trailing blanks for names in setenv, pushenv, prepend_path, etc.
ml now generates error for unknown argument that start with a double minus. (e.g. ml --vers)
pushenv("name","") fixed when unloading module.
Make sure to regularize MODULEPATH when ingesting it for the first time.
All the Lmod programs now resolve any symlinks to the actual program before adding to the Lua's package.path and package.cpath.
Contrib patch: Extend msgHook to LmodError and LmodWarning.
Now using travis for CI and testing.
Configure time option to have Lmod check for magic TCL string in modulefiles (#%Module)
The command "savelist" now only reports collections that match $LMOD_SYSTEM_NAME (install of all collections).
A collection name now CANNOT have `.' in its name.
Contrib patch: Get correct status in a capture in Lua 5.1.
Contrib patch: Failback to /proc/sys/kernel/random/uuid if uuidgen isn't available.
Contrib patch: Failback to shasum if sha1sum isn't available.
Now uses the tclsh (and the LD_LIBRARY_PATH) found at configure time.
Now searches for ps, basename, expr in /bin and /usr/bin when not using the locations found by configure
- Lmod now uses a regular expression to match user commands to internal commands. For example "av", "ava" or "available" will match "avail".
Lmod now obeys LMOD_REDIRECT (or module --redirect) when using the --terse option. This means that if LMOD_REDIRECT is set then module -t av will go to stdout instead of stderr.
Lmod now does not resolve any symlinks when doing "module use "
LMOD_REDIRECT is now reported with --config option.
Lmod would sometimes miss a symlink to a directory with module use. This is now fixed.
Lmod now correctly ignores a valid .version/.modulerc file that points to a non-existant modulefile.
Allow the use of md5 -r as an alternative to sha1sum and md5sum
Added uninstall target to Lmod.
- Lmod now uses the values of LUA_PATH and LUA_CPATH at configuration time. This way Lmod is safe from user changes to these important Lua values.
Updated documentation at lmod.readthedocs.org
Support for generating xalt_rmapT.json used by XALT.
Fixed bug with upcase characters in version file.
It is now possible to configure Lmod to use the spider cache when loading (
export LMOD_CACHED_LOADS=1to activate). This is off by default. Sites that use this will have to keep their spider caches up-to-date or user will not be able to load modules not in the cache.
It is now possible to configure Lmod to use Legacy Version ordering (
export LMOD_LEGACY_VERSION_ORDERING=1). With legacy ordering 9.0 is "newer" than 10.0. This is the ordering that Tmod uses.
Lmod will print admin message (a.k.a nag messages) when doing module whatis or module help . In other words if a nag message would appear with module load then it will also appear when using whatis or help.
Many improvement in the generation of the lmod database for module tracking.
The command module spider would fail to find a module if a site had the spider cache file dbT.lua files and a user had personal modulefiles. This is now fixed.
Two or more .version files could confused Lmod. This is now fixed.
Lmod can now find UPPER CASE string when doing "module key ..."
Lmod now ignore the value of PAGER, instead it uses LMOD_PAGER (default "less") and LMOD_PAGER_OPTS (default "-XqRMEF"). This allows for consistent behavior under systems like the Cray and Mac OS X.
Lmod now reports the module stack when loads fail.
Set $LMOD_REVERSEMAPT_DIR after $LMOD_CACHE_DIR in update_lmod_system_cache_files.
Support for exit 1 in tcl modulefiles.
Fixed bug in tcl and unsetenv.
This version now contains the contrib/tracking_module_usage directory.
This version fixes a bug when trying to run module avail or module spider with an old cache file.
Lmod Version 6.0
Full support for global RC files as well as .modulerc files. This means that $MODULERCFILE will be read along with ~/.modulerc. Also .modulerc files are read when they appear in the same directory and the version files (i.e. the same directory as 1.2 or 2.1.lua). One caveat, Setting the default module version in $MODULERCFILE or ~/.modulerc is not supported due Spider cache issues.
Instructions on how to save module usage data to a MySQL database along with scripts to analyze the usage are in contrib/tracking_module_usage/README.
Adding an exit hook. This makes for more accurate tracking of module usage. See README above as to why this is a good idea.
Some minor speed-ups and minimizing of directory tree
For information to version changes for Lmod before 6.0 see README.old