Environment Modules (software): Difference between revisions

Content deleted Content added
m Modulefiles: add Fish shell
Modulefiles: update man page external references
Line 17:
 
== Modulefiles ==
The modules system is based on modulefiles,<ref>{{cite web |url=httphttps://modules.sourceforgereadthedocs.netio/manen/stable/modulefile.html |title=modulefile - files containing Tcl code for the Modules package |authordate=John31 L. Furlani & Peter W. Osel |date=July 20092025 |website=SourceForgeRead |publisher=manthe pageDocs |access-date=9 February 2014}}</ref> which specify groups of environment settings that need to be made together. Modulefiles can be installed in a central ___location for general use, or in a user directory for personal use. Environment Modules modulefiles are written in the [[Tcl]] (Tool Command Language) and are interpreted by the modulecmd program via the module<ref>{{cite web |url=httphttps://modules.sourceforgereadthedocs.netio/manen/stable/module.html |title=module - command interface to the Modules package |authordate=John31 L. Furlani & Peter W. Osel |date=July 20092025 |website=SourceForgeRead |publisher=man page |access-date=9the FebruaryDocs 2014}}</ref> user interface.
 
The key advantage of Environment Modules is that it is shell independent and supports all major shells such as [[Bash (Unix shell)|Bash]] (bash), [[KornShell]] (ksh), [[Z shell]] (zsh), [[Fish (Unix shell)|Fish]] (fish), [[Bourne shell]] (sh), [[tcsh]], and [[C shell]] (csh). The second key advantage is that it allows to use multiple versions of the program or package from the same account by just loading proper module. Those two advantages were instrumental in making Environment Modules a part of most HPC cluster setups. It also inspired several alternative implementation such as lmod from University of Texas, which is written in [[Lua (programming language)|Lua]] instead of Tcl.