• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

compat/H16-Sep-2020-72,86945,899

contrib/H03-May-2022-3,4552,678

doc/H03-May-2022-42,29134,950

init/H16-Sep-2020-2,2052,039

lib/H16-Sep-2020-14,53012,022

script/H16-Sep-2020-1,8231,300

testsuite/H16-Sep-2020-94,24866,331

CONTRIBUTING.rstH A D16-Sep-20205.7 KiB166118

COPYING.GPLv2H A D16-Sep-202014.9 KiB281237

ChangeLogH A D16-Sep-20201.2 MiB24,63220,240

INSTALL-win.rstH A D16-Sep-20203.3 KiB8560

INSTALL.rstH A D16-Sep-202023.5 KiB449393

MIGRATING.rstH A D16-Sep-202076.3 KiB1,9071,484

MakefileH A D16-Sep-202022.1 KiB739601

Makefile.inc.inH A D16-Sep-20203.1 KiB133102

NEWS.rstH A D16-Sep-2020110 KiB1,9001,799

README.mdH A D16-Sep-20206.1 KiB194129

configureH A D16-Sep-202038.5 KiB1,010837

modulecmd.tcl.inH A D16-Sep-2020432.2 KiB12,5499,978

site.exp.inH A D16-Sep-20202.1 KiB8456

siteconfig.tclH A D16-Sep-2020613 170

version.inc.inH A D16-Sep-2020333 108

README.md

1# <img src="https://raw.githubusercontent.com/cea-hpc/modules/master/doc/img/modules_red.svg" height="180" alt="Modules"/>
2
3[![Linux/OS X Build Status](https://travis-ci.org/cea-hpc/modules.svg?branch=master)](https://travis-ci.org/cea-hpc/modules)
4[![Windows Build Status](https://ci.appveyor.com/api/projects/status/github/cea-hpc/modules?svg=true&branch=master)](https://ci.appveyor.com/project/xdelaruelle/modules-a6nha/branch/master)
5[![FreeBSD Build Status](https://api.cirrus-ci.com/github/cea-hpc/modules.svg)](https://cirrus-ci.com/github/cea-hpc/modules)
6[![Coverage Status](https://codecov.io/gh/cea-hpc/modules/branch/master/graph/badge.svg)](https://codecov.io/gh/cea-hpc/modules)
7[![Documentation Status](https://readthedocs.org/projects/modules/badge/?version=latest)](https://modules.readthedocs.io/en/latest/?badge=latest)
8[![Packaging status](https://repology.org/badge/tiny-repos/environment-modules.svg)](https://repology.org/metapackage/environment-modules/versions)
9
10Modules, provides dynamic modification of a user's environment
11==============================================================
12
13The Modules package is a tool that simplify shell initialization and
14lets users easily modify their environment during the session with
15modulefiles.
16
17Each modulefile contains the information needed to configure the shell for
18an application. Once the Modules package is initialized, the environment can
19be modified on a per-module basis using the module command which interprets
20modulefiles. Typically modulefiles instruct the module command to alter or
21set shell environment variables such as PATH, MANPATH, etc. modulefiles may
22be shared by many users on a system and users may have their own collection
23to supplement or replace the shared modulefiles.
24
25Modules can be loaded and unloaded dynamically and atomically, in an clean
26fashion. All popular shells are supported, including bash, ksh, zsh, sh,
27csh, tcsh, fish, as well as some scripting languages such as tcl, perl,
28python, ruby, cmake and r.
29
30Modules are useful in managing different versions of applications. Modules
31can also be bundled into metamodules that will load an entire suite of
32different applications.
33
34
35Quick examples
36--------------
37
38Here is an example of loading a module on a Linux machine under bash.
39
40    $ module load gcc/6.1.1
41    $ which gcc
42    $ /usr/local/gcc/6.1.1/linux-x86_64/bin/gcc
43
44Now we'll switch to a different version of the module
45
46    $ module switch gcc gcc/6.3.1
47    $ which gcc
48    /usr/local/gcc/6.3.1/linux-x86_64/bin/gcc
49
50And now we'll unload the module altogether
51
52    $ module unload gcc
53    $ which gcc
54    gcc not found
55
56Now we'll log into a different machine, using a different shell (tcsh).
57
58    % module load gcc/6.3.1
59    % which gcc
60    /usr/local/gcc/6.3.1/linux-aarch64/bin/gcc
61
62Note that the command line is exactly the same, but the path has
63automatically configured to the correct architecture.
64
65
66Getting things running
67----------------------
68
69The simplest way to build and install Modules on a Unix system is:
70
71    $ ./configure
72    $ make
73    $ make install
74
75To learn the details on how to install modules see `INSTALL.txt` for Unix
76system or `INSTALL-win.txt` for Windows.
77
78
79Requirements
80------------
81
82 * Tcl >= 8.4
83
84
85License
86-------
87
88Modules is distributed under the GNU General Public License version 2 (GPL
89v2). Read the file `COPYING.GPLv2` for details.
90
91
92Documentation
93-------------
94
95Look at `NEWS` for summarized information regarding the changes brought
96by each released version. Look at `ChangeLog` for detailed information
97regarding changes.
98
99The `doc` directory contains both the paper and man pages describing the
100user's and the module writer's usage. To generate the documentation files,
101like the man pages (you need Sphinx >= 1.0 to build the documentation), just
102type:
103
104    $ ./configure
105    $ make -C doc all
106
107The following man pages are provided:
108
109    module(1), ml(1), modulefile(4)
110
111
112Test suite
113----------
114
115Regression testing scripts are available in the `testsuite` directory (you
116need dejagnu to run the test suite):
117
118    $ ./configure
119    $ make test
120
121Once modules is installed after running `make install`, you have the
122ability to test this installation with:
123
124    $ make testinstall
125
126
127Transition from v3.2
128--------------------
129
130Starting from v4.0, the Modules project provides the `module` command based
131on the native Tcl implementation as main version instead of the traditional
132C version. The full Tcl rewrite of the Modules package, previously called
133Modules-Tcl, was started in 2002 and has now reached maturity to take over
134the binary version in order to push forward the *module* concept.
135
136All new releases are in fact *double-releases* as they also ship the latest
137stable version of the traditional C flavor of modulecmd. This *compatibility*
138version is labeled 3.2.11 as it is based on 3.2.10 with addition of widely
139used patches. The compatibility version builds and installs by default
140along with the new main version (v4 or later). Same initialization scripts
141are shared between compatibility and new main versions and a `switchml`
142shell function enables to swap from one module flavor to another.
143
144If you are moving from Modules 3.2 to 4.0 or later, please look at the
145MIGRATING document. It provides an outlook of what has changed between the 2
146versions. Both v3.2 and >=v4.0 are quite similar and transition to the new
147major version should be smooth. Slights differences may however be noticed
148in a few use-cases and the migration guide provides details about them.
149
150
151Links
152-----
153
154Web site:
155
156> http://modules.sourceforge.net
157
158Online documentation:
159
160> https://modules.readthedocs.io
161
162GitHub source respository:
163
164> https://github.com/cea-hpc/modules
165
166GitHub Issue tracking system:
167
168> https://github.com/cea-hpc/modules/issues
169
170SourceForge project page:
171
172> http://sourceforge.net/projects/modules/
173
174
175Authors
176-------
177
178Current core developer and maintainer is:
179
180 * Xavier Delaruelle <xavier.delaruelle AT cea.fr>
181
182The following people have notably contributed to Modules and Modules would
183not be what it is without their contributions:
184
185 * R.K. Owen
186 * Kent Mein
187 * Mark Lakata
188 * Harlan Stenn
189 * Leo Butler
190 * Robert Minsk
191 * Jens Hamisch
192 * Peter W. Osel
193 * John L. Furlani
194