Content deleted Content added
Add category |
Delaruellex (talk | contribs) m improve intro |
||
(11 intermediate revisions by 6 users not shown) | |||
Line 1:
{{Short description|
{{how-to|date=February 2015}}
{{Infobox software
| name = Environment Modules
| logo = Environment_Modules_logo.svg
| latest_release_version = 5.
| latest_release_date = {{Start date and age|
| operating_system = [[Unix-like]]
| programming_language = [[Tcl]]
Line 11:
| website = {{URL|https://modules.sourceforge.net/}}
}}
The '''Environment Modules''' system is a [[software tool]] designed to help users
== Development ==
Modules has been around since the early 1990s<ref>{{cite journal |last=Furlani |first=John L. |date=September 30 – October 3, 1991 |title=Modules: Providing a Flexible User Environment |url=
==
The modules system is based on modulefiles,<ref>{{cite web |url=
The key advantage of Environment Modules is that it is shell independent and supports all major shells such as [[Bash (Unix shell)|
▲The modules system is based on modulefiles,<ref>{{cite web |url=http://modules.sourceforge.net/man/modulefile.html |title=modulefile - files containing Tcl code for the Modules package |author=John L. Furlani & Peter W. Osel |date=July 2009 |website=SourceForge |publisher=man page |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| Tcl (Tool Command Language)]] and are interpreted by the modulecmd program via the module<ref>{{cite web |url=http://modules.sourceforge.net/man/module.html |title=module - command interface to the Modules package |author=John L. Furlani & Peter W. Osel |date=July 2009 |website=SourceForge |publisher=man page |access-date=9 February 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]], [[KornShell|ksh]], [[Z shell|zsh]], 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]].
▲modulefiles are created on per application per version basis. They can be dynamically loaded, unloaded, or switched. Along with the capability of using multiple versions of the same software it also can be used to implement site policies regarding the access and use of applications.
=== Default modulefiles directory ===
The default modules search path is in a hidden configuration file you can display with:
{{sxhl|2=console|
Line 34 ⟶ 33:
=== Add your own modules to the path ===
The {{mono|${MODULESHOME}/modulefiles/'''use.own'''}} module essentially performs these steps:
{{sxhl|2=bash|
Line 43 ⟶ 41:
=== Use a version file within a hierarchical organization ===
The commands in this section require read/write/execute access to the {{Mono|/etc/modulefiles}} directory. The {{Mono|$HOME/privatemodules}} or another directory can be used instead along with "{{Mono|module use --append}}" or modification of the configuration file specifying the default modules search path.
Line 124 ⟶ 121:
== Automatic modules initialization ==
Environment Modules on [[Scientific Linux]], [[CentOS]], and [[Red Hat Enterprise Linux]] distributions in the environment-modules package include {{mono|modules.csh}} and {{mono|modules.sh}} scripts for the {{mono|/etc/profile.d}} directory that make modules initialization part of the default shell initialization. One of the advantages of Environment Modules is a single modulefile that supports bash, ksh, zsh, sh as well as tcsh and csh shell users for environment setup and initialization. This makes managing complex environments a bit less complicated.
Line 155 ⟶ 151:
=== tcsh, csh automatic modules initialization ===
A {{mono|/etc/profile.d/modules.csh}} symbolic link to the {{mono|etc/global/profile.modules}} file in the 3.2.10 modules build directory can enable automatic modules initialization for these users.
== Installing on Linux==
=== yum and rpm ===
On Scientific Linux, CentOS, and RHEL distributions Environment Modules is in the environment-modules package which can be installed with:
<syntaxhighlight lang="
</syntaxhighlight>
Once installed the package information can be viewed with:
<syntaxhighlight lang="
</syntaxhighlight>
===
▲On Ubuntu or systems using {{Mono|apt-get}}, Environment Modules can be installed with:
▲<syntaxhighlight lang="console">
▲$ sudo apt-get install environment-modules
</syntaxhighlight>
Once installed the package information can be viewed with:
<syntaxhighlight lang="
</syntaxhighlight>
===
Although installing from a [[Linux distributions]] repository using that distributions update manager is the easiest the software can be installed from source. Resolve dependencies is the most difficult task for an installation from source. The typical configure, make, install cycle can become painfully slow as each configure improvement reveals another dependency not available in your default environment. This section includes the steps to install the Environment Modules package on source including compiling the
▲Although installing from a Linux distributions repository using that distributions update manager is the easiest the software can be installed from source. Resolve dependencies is the most difficult task for an installation from source. The typical configure, make, install cycle can become painfully slow as each configure improvement reveals another dependency not available in your default environment. This section includes the steps to install the Environment Modules package on source including compiling the [[Tcl]] from source as a dependency.
==== 8.6.1 version of Tcl built from {{Mono|/usr/local/src}} ====▼
Although the PCLinuxOS 64-bit repositories include [[Tcl]] they do not include a development package with the configuration files required to build Environment Modules on Linux from source. Building Tcl from source will make the required files available.▼
▲Although the [[PCLinuxOS]] 64-bit repositories include
Extract source after downloading
Line 210 ⟶ 197:
==== 3.2.10 version of modules built from /usr/local/src ====
Extract source after downloading
{{sxhl|2=bash|
Line 223 ⟶ 209:
sudo make install
}}
{{Portal|Free and open-source software}}▼
== References ==
Line 232 ⟶ 214:
== External links ==
▲{{Portal|Free and open-source software}}
* {{Official website|https://modules.sourceforge.net/}}
* {{GitHub|envmodules/modules}}
* John L. Furlani, [
* http://lmod.sourceforge.net - alternative implementation using
* http://www.lysator.liu.se/cmod/ - alternative implementation using C only
* [https://web.archive.org/web/20140203041538/http://rcc.its.psu.edu/user_guides/system_utilities/modules/ PennState Environment Modules User Guide]
* [
* [https://web.archive.org/web/20150217180220/https://www.xsede.org/software-environments Xsede Software Environments]. The Extreme Science and Engineering Discovery Environment ― National Science Foundation
* [http://www.nics.tennessee.edu/computing-resources/modules NICS Modules Description] ― The National Institute for Computational Sciences at Oak Ridge National Laboratory ― Department of Energy
Line 245 ⟶ 229:
[[Category:Free software programmed in Tcl]]
[[Category:Unix software]]
[[Category:Science software]]
[[Category:System administration]]
|