1MODULE(1) Modules MODULE(1)
2
3
4
6 module - command interface to the Modules package
7
9 module [switches] [sub-command [sub-command-args]]
10
12 module is a user interface to the Modules package. The Modules package
13 provides for the dynamic modification of the user's environment via
14 modulefiles.
15
16 Each modulefile contains the information needed to configure the shell
17 for an application. Once the Modules package is initialized, the envi‐
18 ronment can be modified on a per-module basis using the module command
19 which interprets modulefiles. Typically modulefiles instruct the module
20 command to alter or set shell environment variables such as PATH, MAN‐
21 PATH, etc. Modulefiles may be shared by many users on a system and
22 users may have their own set to supplement or replace the shared mod‐
23 ulefiles.
24
25 The modulefiles are added to and removed from the current environment
26 by the user. The environment changes contained in a modulefile can be
27 summarized through the module command as well. If no arguments are
28 given, a summary of the module usage and sub-commands are shown.
29
30 The action for the module command to take is described by the sub-com‐
31 mand and its associated arguments.
32
33 Package Initialization
34 The Modules package and the module command are initialized when a
35 shell-specific initialization script is sourced into the shell. The
36 script executes the autoinit sub-command of the modulecmd.tcl program
37 located in /usr/share/Modules/libexec for the corresponding shell. The
38 output of this execution is evaluated by shell which creates the module
39 command as either an alias or function and creates Modules environment
40 variables.
41
42 During this initialization process, if the Modules environment is found
43 undefined (when both MODULEPATH and LOADEDMODULES are found either un‐
44 set or empty), the modulespath and initrc configuration files located
45 in /etc/environment-modules are evaluated if present and following this
46 order. modulespath file contains the list of modulepaths to enable dur‐
47 ing initialization. In this file, the modulepaths are separated by new‐
48 line or colon characters. initrc is a modulefile that defines during
49 initialization the modulepaths to enable, the modules to load and the
50 module configuration to apply.
51
52 During the initialization process, if the Modules environment is found
53 defined a module refresh is automatically applied to restore in the
54 current environment all non-persistent components set by loaded mod‐
55 ules.
56
57 The module alias or function executes the modulecmd.tcl program and has
58 the shell evaluate the command's output. The first argument to mod‐
59 ulecmd.tcl specifies the type of shell.
60
61 The initialization scripts are kept in /usr/share/Modules/init/<shell>
62 where <shell> is the name of the sourcing shell. For example, a C Shell
63 user sources the /usr/share/Modules/init/csh script. The sh, csh, tcsh,
64 bash, ksh, zsh, fish and cmd shells are supported by modulecmd.tcl. In
65 addition, python, perl, ruby, tcl, cmake, r and lisp "shells" are sup‐
66 ported which writes the environment changes to stdout as python, perl,
67 ruby, tcl, lisp, r or cmake code.
68
69 Initialization may also be performed by directly calling the autoinit
70 sub-command of the modulecmd.tcl program.
71
72 A ml alias or function may also be defined at initialization time if
73 enabled (see MODULES_ML section). ml is a handy frontend leveraging all
74 module command capabilities with less character typed. See ml for de‐
75 tailed information.
76
77 Examples of initialization
78 C Shell initialization (and derivatives):
79
80 source /usr/share/Modules/init/csh
81 module load modulefile modulefile ...
82
83 Bourne Shell (sh) (and derivatives):
84
85 . /usr/share/Modules/init/sh
86 module load modulefile modulefile ...
87
88 Perl:
89
90 require "/usr/share/Modules/init/perl.pm";
91 &module('load', 'modulefile', 'modulefile', '...');
92
93 Python:
94
95 import os
96 exec(open("/usr/share/Modules/init/python.py").read(), globals())
97 module("load", "modulefile", "modulefile", "...")
98
99 Bourne Shell (sh) (and derivatives) with autoinit sub-command:
100
101 eval "$(/usr/share/Modules/libexec/modulecmd.tcl sh autoinit)"
102
103 Modulecmd startup
104 Upon invocation modulecmd.tcl sources a site-specific configuration
105 script if it exists. Siteconfig script is a Tcl script located at
106 /etc/environment-modules/siteconfig.tcl. It enables to supersede any
107 global variable or procedure definition of modulecmd.tcl. See
108 Site-specific configuration for detailed information.
109
110 Afterward, modulecmd.tcl sources rc files which contain global, user
111 and modulefile specific setups. These files are interpreted as module‐
112 files. See modulefile for detailed information.
113
114 Upon invocation of modulecmd.tcl module run-command files are sourced
115 in the following order:
116
117 1. Global RC file as specified by MODULERCFILE variable or /etc/envi‐
118 ronment-modules/rc. If MODULERCFILE points to a directory, the mod‐
119 ulerc file in this directory is used as global RC file.
120
121 2. User specific module RC file $HOME/.modulerc
122
123 3. All .modulerc and .version files found during modulefile seeking.
124
125 These module run-command files must begins like modulefiles with the
126 #%Module file signature, also called the Modules magic cookie. A ver‐
127 sion number may be placed after this string. The version number re‐
128 flects the minimum version of modulecmd.tcl required to interpret the
129 run-command file. If a version number doesn't exist, then modulecmd.tcl
130 will assume the run-command file is compatible. Files without the magic
131 cookie or with a version number greater than the current version of
132 modulecmd.tcl will not be interpreted and an error is reported. Such
133 error does not abort the whole module evaluation. If the
134 mcookie_version_check configuration is disabled the version number set
135 is not checked.
136
137 NOTE:
138 Run-command files are intended to set parameters for modulefiles,
139 not to configure the module command itself.
140
141 Command line switches
142 The module command accepts command line switches as its first parame‐
143 ter. These may be used to control output format of all information dis‐
144 played and the module behavior in case of locating and interpreting
145 modulefiles.
146
147 All switches may be entered either in short or long notation. The fol‐
148 lowing switches are accepted:
149
150 --all, -a
151 Include hidden modules in search performed with avail, aliases,
152 list, lint, savelist, search or whatis sub-commands. Hard-hidden
153 modules are not affected by this option.
154
155 --auto Enable automated module handling mode on sub-commands that load
156 or unload modulefiles. See also MODULES_AUTO_HANDLING section.
157
158 --color=<WHEN>
159 Colorize the output. WHEN defaults to always or can be never or
160 auto. See also MODULES_COLOR section.
161
162 --contains, -C
163 On avail, list and savelist sub-commands, return modules or col‐
164 lections whose fully qualified name contains search query
165 string.
166
167 --debug, -D, -DD
168 Debug mode. Causes module to print debugging messages about its
169 progress. Multiple -D options increase the debug verbosity. The
170 maximum is 2.
171
172 --default, -d
173 On avail sub-command, display only the default version of each
174 module name. Default version is the explicitly set default ver‐
175 sion or also the implicit default version if the configuration
176 option implicit_default is enabled (see Locating Modulefiles
177 section in the modulefile man page for further details on im‐
178 plicit default version).
179
180 --force, -f
181 On load, unload, switch, load-any, try-load, mod-to-sh and
182 source sub-commands by-pass any unsatisfied modulefile con‐
183 straint corresponding to the declared prereq and conflict. Which
184 means for instance that a modulefile will be loaded even if it
185 comes in conflict with another loaded modulefile or that a mod‐
186 ulefile will be unloaded even if it is required as a prereq by
187 another modulefile.
188
189 On clear sub-command, skip the confirmation dialog and proceed.
190
191 On purge sub-command also unload sticky modules and modulefiles
192 that are depended by non-unloadable modules.
193
194 --help, -h
195 Give some helpful usage information, and terminates the command.
196
197 --icase, -i
198 Match module specification arguments in a case insensitive man‐
199 ner.
200
201 --ignore-cache
202 Ignore module cache.
203
204 --ignore-user-rc
205 Skip evaluation of user-specific module rc file ($HOME/.mod‐
206 ulerc).
207
208 --indepth
209 On avail sub-command, include in search results the matching
210 modulefiles and directories and recursively the modulefiles and
211 directories contained in these matching directories.
212
213 --json, -j
214 Display avail, list, savelist, stashlist, whatis and search out‐
215 put in JSON format.
216
217 --latest, -L
218 On avail sub-command, display only the highest numerically
219 sorted version of each module name (see Locating Modulefiles
220 section in the modulefile man page).
221
222 --long, -l
223 Display avail, list, savelist and stashlist output in long for‐
224 mat.
225
226 --no-auto
227 Disable automated module handling mode on sub-commands that load
228 or unload modulefiles. See also MODULES_AUTO_HANDLING section.
229
230 --no-indepth
231 On avail sub-command, limit search results to the matching mod‐
232 ulefiles and directories found at the depth level expressed by
233 the search query. Thus modulefiles contained in directories part
234 of the result are excluded.
235
236 --no-pager
237 Do not pipe message output into a pager.
238
239 --no-redirect
240 Do not send message output to stdout. Keep it on stderr.
241
242 --output=LIST, -o LIST
243 Define the content to report in addition to module names. This
244 option is supported by avail and list sub-commands on their reg‐
245 ular or terse output modes. Accepted values are a LIST of ele‐
246 ments to report separated by colon character (:). The order of
247 the elements in LIST does not matter.
248
249 Accepted elements in LIST for avail sub-command are: modulepath,
250 alias, dirwsym, indesym, sym, tag, key, variant and variantif‐
251 spec.
252
253 Accepted elements in LIST for list sub-command are: header, idx,
254 variant, sym, tag and key.
255
256 The order of the elements in LIST does not matter. Module names
257 are the only content reported when LIST is set to an empty
258 value.
259
260 LIST may be prefixed by + or - character to indicate respec‐
261 tively to append it to or subtract it from current configuration
262 option value.
263
264 See also MODULES_AVAIL_OUTPUT and MODULES_LIST_OUTPUT.
265
266 --paginate
267 Pipe all message output into less (or if set, to the command re‐
268 ferred in MODULES_PAGER variable) if error output stream is a
269 terminal. See also MODULES_PAGER section.
270
271 --redirect
272 Send message output to stdout instead of stderr. Only supported
273 on sh, bash, ksh, zsh and fish shells.
274
275 --silent, -s
276 Turn off error, warning and informational messages. module com‐
277 mand output result is not affected by silent mode.
278
279 --starts-with, -S
280 On avail, list and savelist sub-commands, return modules or col‐
281 lections whose name starts with search query string.
282
283 --tag=LIST
284 On load, load-any, switch and try-load sub-commands, apply LIST
285 of module tags to the loading modulefile. LIST corresponds to
286 the concatenation of multiple tags separated by colon character
287 (:). LIST should not contain tags inherited from modulefile
288 state or from other modulefile commands. If module is already
289 loaded, tags from LIST are added to the list of tags already ap‐
290 plied to this module.
291
292 --terse, -t
293 Display avail, list, savelist and stashlist output in short for‐
294 mat.
295
296 --timer
297 Prints at the end of the output an evaluation of the total exe‐
298 cution time of the module command. When mixed with a single or
299 multiple --debug options, replaces regular debug messages by re‐
300 ports of the execution time of every internal procedure calls.
301
302 --trace, -T
303 Trace mode. Report details on module searches, resolutions, se‐
304 lections and evaluations in addition to printing verbose mes‐
305 sages.
306
307 --verbose, -v, -vv
308 Enable verbose messages during module command execution. Multi‐
309 ple -v options increase the verbosity level. The maximum is 2.
310
311 --version, -V
312 Lists the current version of the module command. The command
313 then terminates without further processing.
314
315 --width=COLS, -w COLS
316 Set the width of the output to COLS columns. See also
317 MODULES_TERM_WIDTH section.
318
319 Module Sub-Commands
320 add [options] modulefile...
321 See load.
322
323 add-any [options] modulefile...
324 See load-any.
325
326 aliases [-a]
327 List all available symbolic version-names and aliases in the
328 current MODULEPATH. All directories in the MODULEPATH are recur‐
329 sively searched in the same manner than for the avail sub-com‐
330 mand. Only the symbolic version-names and aliases found in the
331 search are displayed.
332
333 append-path [-d C|--delim C|--delim=C] [--duplicates] variable value...
334 Append value to environment variable. The variable is a colon,
335 or delimiter, separated list. See append-path in the modulefile
336 man page for further explanation.
337
338 When append-path is called as a module sub-command, the refer‐
339 ence counter variable, which denotes the number of times value
340 has been added to environment variable, is not updated unless if
341 the --duplicates option is set.
342
343 apropos [-a] [-j] string
344 See search.
345
346 avail [-d|-L] [-t|-l|-j] [-a] [-o LIST] [-S|-C] [--indepth|--no-in‐
347 depth] [pattern...]
348 List all available modulefiles in the current MODULEPATH. All
349 directories in the MODULEPATH are recursively searched for files
350 containing the Modules magic cookie. If a pattern argument is
351 given, then each directory in the MODULEPATH is searched for
352 modulefiles whose pathname, symbolic version-name or alias match
353 pattern in a case insensitive manner by default. pattern may
354 contain wildcard characters. Multiple versions of an applica‐
355 tion can be supported by creating a subdirectory for the appli‐
356 cation containing modulefiles for each version.
357
358 Symbolic version-names and aliases found in the search are dis‐
359 played in the result of this sub-command. Symbolic version-names
360 are displayed next to the modulefile they are assigned to within
361 parenthesis. Aliases are listed in the MODULEPATH section where
362 they have been defined. To distinguish aliases from modulefiles
363 a @ symbol is added within parenthesis next to their name.
364 Aliases defined through a global or user specific module RC file
365 are listed under the global/user modulerc section.
366
367 When colored output is enabled and a specific graphical rendi‐
368 tion is defined for module default version, the default symbol
369 is omitted and instead the defined graphical rendition is ap‐
370 plied to the relative modulefile. When colored output is enabled
371 and a specific graphical rendition is defined for module alias,
372 the @ symbol is omitted. The defined graphical rendition applies
373 to the module alias name. See MODULES_COLOR and MODULES_COLORS
374 sections for details on colored output.
375
376 Module tags applying to the available modulefiles returned by
377 the avail sub-command are reported along the module name they
378 are associated to (see Module tags section).
379
380 Module variants and their available values may be reported along
381 the module name they belong to (see Module variants section) if
382 defined in avail output configuration option (see --output/-o
383 option). The Extra match search process is triggered to collect
384 variant information.
385
386 A Key section is added at the end of the output in case some el‐
387 ements are reported in parentheses or chevrons along module name
388 or if some graphical rendition is made over some output ele‐
389 ments. This Key section gives hints on the meaning of such ele‐
390 ments.
391
392 The parameter pattern may also refer to a symbolic modulefile
393 name or a modulefile alias. It may also leverage a specific syn‐
394 tax to finely select module version (see Advanced module version
395 specifiers section below).
396
397 If pattern contains variant specification or Extra specifier,
398 the Extra match search process is triggered to collect command
399 information used in modulefiles. Modules are included in results
400 only if they match pattern variant specification and extra spec‐
401 ifier. pattern may be a bare variant specification or extra
402 specifier without mention of a module name.
403
404 cachebuild [modulepath...]
405 Build module cache file for designated modulepaths. If no argu‐
406 ment is provided cache file is built for every modulepath cur‐
407 rently enabled. Cache file creation is skipped for modulepaths
408 where user cannot write in.
409
410 The name and content of every readable modulefiles and rc files
411 are recorded into cache file. Also last modification time of
412 modulefiles and invalid modulefile error messages are recorded.
413 With all these information, the sole cache file is evaluated to
414 know what is available within modulepath.
415
416 See Module cache section for more details on module cache mecha‐
417 nism.
418
419 cacheclear
420 Delete module cache file in every modulepath currently enabled.
421 If user cannot write in a modulepath directory, cache file dele‐
422 tion is skipped for this modulepath.
423
424 See Module cache section for more details on module cache mecha‐
425 nism.
426
427 clear [-f]
428 Force the Modules package to believe that no modules are cur‐
429 rently loaded. A confirmation is requested if command-line
430 switch -f (or --force) is not passed. Typed confirmation should
431 equal to yes or y in order to proceed.
432
433 config [--dump-state|name [value]|--reset name]
434 Gets or sets modulecmd.tcl options. Reports the currently set
435 value of passed option name or all existing options if no name
436 passed. If a name and a value are provided, the value of option
437 name is set to value. If command-line switch --reset is passed
438 in addition to a name, overridden value for option name is
439 cleared.
440
441 When a reported option value differs from default value a men‐
442 tion is added to indicate whether the overridden value is coming
443 from a command-line switch (cmd-line) or from an environment
444 variable (env-var). When a reported option value is locked and
445 cannot be altered a (locked) mention is added.
446
447 If no value is currently set for an option name, the mention
448 <undef> is reported.
449
450 For options whose value is a colon-separated list, value may be
451 prefixed by + or - character. It indicates respectively to ap‐
452 pend it to or subtract it from current option value.
453
454 When command-line switch --dump-state is passed, current mod‐
455 ulecmd.tcl state and Modules-related environment variables are
456 reported in addition to currently set modulecmd.tcl options.
457
458 Existing option names are:
459
460 advanced_version_spec
461 Advanced module version specification to finely select
462 modulefiles.
463
464 Default value is 1. It can be changed at installation
465 time with --disable-advanced-version-spec option. The
466 MODULES_ADVANCED_VERSION_SPEC environment variable is de‐
467 fined by config sub-command when changing this configura‐
468 tion option from its default value. See
469 MODULES_ADVANCED_VERSION_SPEC description for details.
470
471 auto_handling
472 Automated module handling mode.
473
474 Default value is 1. It can be changed at installation
475 time with --disable-auto-handling option. The
476 MODULES_AUTO_HANDLING environment variable is defined by
477 config sub-command when changing this configuration op‐
478 tion from its default value. The --auto and --no-auto
479 command line switches change the value of this configura‐
480 tion option. See MODULES_AUTO_HANDLING description for
481 details.
482
483 avail_indepth
484 avail sub-command in depth search mode.
485
486 Default value is 1. It can be changed at installation
487 time with --disable-avail-indepth option. The
488 MODULES_AVAIL_INDEPTH environment variable is defined by
489 config sub-command when changing this configuration op‐
490 tion from its default value. The --indepth and
491 --no-indepth command line switches change the value of
492 this configuration option. See MODULES_AVAIL_INDEPTH de‐
493 scription for details.
494
495 avail_output
496 Content to report in addition to module names on avail
497 sub-command regular output mode.
498
499 Default value is modulepath:alias:dirwsym:sym:tag:key. It
500 can be changed at installation time with
501 --with-avail-output option. The MODULES_AVAIL_OUTPUT en‐
502 vironment variable is defined by config sub-command when
503 changing this configuration option from its default
504 value. The --output/-o command line switches change the
505 value of this configuration option. See
506 MODULES_AVAIL_OUTPUT description for details.
507
508 avail_terse_output
509 Content to report in addition to module names on avail
510 sub-command terse output mode.
511
512 Default value is modulepath:alias:dirwsym:sym:tag. It can
513 be changed at installation time with
514 --with-avail-terse-output option. The
515 MODULES_AVAIL_TERSE_OUTPUT environment variable is de‐
516 fined by config sub-command when changing this configura‐
517 tion option from its default value. The --output/-o com‐
518 mand line switches change the value of this configuration
519 option. See MODULES_AVAIL_TERSE_OUTPUT description for
520 details.
521
522 cache_buffer_bytes
523 Size of the buffer used when reading or writing cache
524 files.
525
526 Default value is 32768. Values between 4096 and 1000000
527 are accepted. The MODULES_CACHE_BUFFER_BYTES environment
528 variable is defined by config sub-command when changing
529 this configuration option from its default value.
530
531 cache_expiry_secs
532 Number of seconds a cache file is considered valid after
533 being generated.
534
535 Default value is 0. Values between 0 and 31536000 are ac‐
536 cepted. The MODULES_CACHE_EXPIRY_SECS environment vari‐
537 able is defined by config sub-command when changing this
538 configuration option from its default value.
539
540 collection_pin_version
541 Register exact modulefile version in collection.
542
543 Default value is 0. The MODULES_COLLECTION_PIN_VERSION
544 environment variable is defined by config sub-command
545 when changing this configuration option from its default
546 value. See MODULES_COLLECTION_PIN_VERSION description for
547 details.
548
549 collection_pin_tag
550 Register full tag list applying to modulefiles in collec‐
551 tion.
552
553 Default value is 0. The MODULES_COLLECTION_PIN_TAG envi‐
554 ronment variable is defined by config sub-command when
555 changing this configuration option from its default
556 value. See MODULES_COLLECTION_PIN_TAG description for de‐
557 tails.
558
559 collection_target
560 Collection target which is valid for current system.
561
562 This configuration option is unset by default. The
563 MODULES_COLLECTION_TARGET environment variable is defined
564 by config sub-command when changing this configuration
565 option from its default value. See
566 MODULES_COLLECTION_TARGET description for details.
567
568 color Colored output mode.
569
570 Default value is auto. It can be changed at installation
571 time with --disable-color option. The MODULES_COLOR envi‐
572 ronment variable is defined by config sub-command when
573 changing this configuration option from its default
574 value. The --color command line switches changes the
575 value of this configuration option. See MODULES_COLOR de‐
576 scription for details.
577
578 colors Chosen colors to highlight output items.
579
580 Default value is
581 hi=1:db=2:tr=2:se=2:er=91:wa=93:me=95:in=94:mp=1;94:di=94:al=96:va=93:sy=95:de=4:cm=92:aL=100:L=90;47:H=2:F=41:nF=43:S=46:sS=44:kL=30;48;5;109.
582 It can be changed at installation time with
583 --with-dark-background-colors or
584 --with-light-background-colors options in conjunction
585 with --with-terminal-background. The MODULES_COLORS envi‐
586 ronment variable is defined by config sub-command when
587 changing this configuration option from its default
588 value. See MODULES_COLORS description for details.
589
590 contact
591 Modulefile contact address.
592
593 Default value is root@localhost. The MODULECONTACT envi‐
594 ronment variable is defined by config sub-command when
595 changing this configuration option from its default
596 value. See MODULECONTACT description for details.
597
598 extended_default
599 Allow partial module version specification.
600
601 Default value is 1. It can be changed at installation
602 time with --disable-extended-default option. The
603 MODULES_EXTENDED_DEFAULT environment variable is defined
604 by config sub-command when changing this configuration
605 option from its default value. See
606 MODULES_EXTENDED_DEFAULT description for details.
607
608 editor Text editor command to open modulefile with through edit
609 sub-command.
610
611 Default value is vi. It can be changed at installation
612 time with --with-editor option. The MODULES_EDITOR envi‐
613 ronment variable is defined by config sub-command when
614 changing this configuration option from its default
615 value. See MODULES_EDITOR description for details.
616
617 extra_siteconfig
618 Additional site-specific configuration script location.
619 See Site-specific configuration section for details.
620
621 This configuration option is unset by default. The
622 MODULES_SITECONFIG environment variable is defined by
623 config sub-command when changing this configuration op‐
624 tion from its default value. See MODULES_SITECONFIG de‐
625 scription for details.
626
627 home Location of Modules package main directory.
628
629 Default value is /usr/share/Modules. It can be changed at
630 installation time with --prefix or --with-moduleshome op‐
631 tions. The MODULESHOME environment variable is defined by
632 config sub-command when changing this configuration op‐
633 tion from its default value. See MODULESHOME description
634 for details.
635
636 icase Enable case insensitive match.
637
638 Default value is search. It can be changed at installa‐
639 tion time with --with-icase option. The MODULES_ICASE en‐
640 vironment variable is defined by config sub-command when
641 changing this configuration option from its default
642 value. The --icase/-i command line switches change the
643 value of this configuration option. See MODULES_ICASE de‐
644 scription for details.
645
646 ignore_cache
647 Ignore module cache.
648
649 Default is 0. The MODULES_IGNORE_CACHE environment vari‐
650 able is defined by config sub-command when changing this
651 configuration option from its default value. The
652 --ignore-cache command line switch changes the value of
653 this configuration option.
654
655 ignore_user_rc
656 Skip evaluation of user-specific module rc file
657 ($HOME/.modulerc).
658
659 Default is 0. The MODULES_IGNORE_USER_RC environment
660 variable is defined by config sub-command when changing
661 this configuration option from its default value. The
662 --ignore-user-rc command line switch changes the value of
663 this configuration option.
664
665 ignored_dirs
666 Directories ignored when looking for modulefiles.
667
668 Default value is CVS RCS SCCS .svn .git .SYNC .sos. The
669 value of this option cannot be altered.
670
671 implicit_default
672 Set an implicit default version for modules.
673
674 Default value is 1. It can be changed at installation
675 time with --disable-implicit-default option. The
676 MODULES_IMPLICIT_DEFAULT environment variable is defined
677 by config sub-command when changing this configuration
678 option from its default value. See
679 MODULES_IMPLICIT_DEFAULT description for details.
680
681 implicit_requirement
682 Implicitly define a requirement onto modules specified on
683 module commands in modulefile.
684
685 Default value is 1. It can be changed at installation
686 time with --disable-implicit-requirement option. The
687 MODULES_IMPLICIT_REQUIREMENT environment variable is de‐
688 fined by config sub-command when changing this configura‐
689 tion option from its default value. See
690 MODULES_IMPLICIT_REQUIREMENT description for details.
691
692 list_output
693 Content to report in addition to module names on list
694 sub-command regular output mode.
695
696 Default value is header:idx:variant:sym:tag:key. It can
697 be changed at installation time with --with-list-output
698 option. The MODULES_LIST_OUTPUT environment variable is
699 defined by config sub-command when changing this configu‐
700 ration option from its default value. The --output/-o
701 command line switches change the value of this configura‐
702 tion option. See MODULES_LIST_OUTPUT description for de‐
703 tails.
704
705 list_terse_output
706 Content to report in addition to module names on list
707 sub-command terse output mode.
708
709 Default value is header. It can be changed at installa‐
710 tion time with --with-list-terse-output option. The
711 MODULES_LIST_TERSE_OUTPUT environment variable is defined
712 by config sub-command when changing this configuration
713 option from its default value. The --output/-o command
714 line switches change the value of this configuration op‐
715 tion. See MODULES_LIST_TERSE_OUTPUT description for de‐
716 tails.
717
718 locked_configs
719 Configuration options that cannot be superseded. All op‐
720 tions referred in locked_configs value are locked, thus
721 their value cannot be altered.
722
723 This configuration option is set to an empty value by de‐
724 fault. It can be changed at installation time with
725 --with-locked-configs option. The value of this option
726 cannot be altered.
727
728 mcookie_check
729 Defines if the Modules magic cookie (i.e., #%Module file
730 signature) should be checked to determine if a file is a
731 modulefile.
732
733 Default value is always. The MODULES_MCOOKIE_CHECK envi‐
734 ronment variable is defined by config sub-command when
735 changing this configuration option from its default
736 value. See MODULES_MCOOKIE_CHECK description for details.
737
738 mcookie_version_check
739 Defines if the version set in the Modules magic cookie
740 used in modulefile should be checked against the version
741 of modulecmd.tcl to determine if the modulefile could be
742 evaluated or not.
743
744 Default value is 1. It can be changed at installation
745 time with --disable-mcookie-version-check option. The
746 MODULES_MCOOKIE_VERSION_CHECK environment variable is de‐
747 fined by config sub-command when changing this configura‐
748 tion option from its default value. See
749 MODULES_MCOOKIE_VERSION_CHECK description for details.
750
751 ml Define ml command at initialization time.
752
753 Default value is 1. It can be changed at installation
754 time with --disable-ml option. The MODULES_ML environment
755 variable is defined by config sub-command when changing
756 this configuration option from its default value. See
757 MODULES_ML description for details.
758
759 nearly_forbidden_days
760 Set the number of days a module should be considered
761 nearly forbidden prior reaching its expiry date.
762
763 Default value is 14. It can be changed at installation
764 time with --with-nearly-forbidden-days option. The
765 MODULES_NEARLY_FORBIDDEN_DAYS environment variable is de‐
766 fined by config sub-command when changing this configura‐
767 tion option from its default value. See
768 MODULES_NEARLY_FORBIDDEN_DAYS description for details.
769
770 pager Text viewer to paginate message output.
771
772 Default value is less -eFKRX. It can be changed at in‐
773 stallation time with --with-pager and --with-pager-opts
774 options. The MODULES_PAGER environment variable is de‐
775 fined by config sub-command when changing this configura‐
776 tion option from its default value. See MODULES_PAGER
777 description for details.
778
779 protected_envvars
780 Prevents any modification of listed environment variables
781 (colon : separator).
782
783 This configuration option is unset by default. The
784 MODULES_PROTECTED_ENVVARS environment variable is defined
785 by config sub-command when changing this configuration
786 option from its default value. See
787 MODULES_PROTECTED_ENVVARS description for details.
788
789 quarantine_support
790 Defines if code for quarantine mechanism support should
791 be generated in module shell function definition.
792
793 Default value is 0. It can be changed at installation
794 time with --enable-quarantine-support option. The
795 MODULES_QUARANTINE_SUPPORT environment variable is de‐
796 fined by config sub-command when changing this configura‐
797 tion option from its default value. See
798 MODULES_QUARANTINE_SUPPORT description for details.
799
800 rcfile Global run-command file location.
801
802 This configuration option is unset by default. The
803 MODULERCFILE environment variable is defined by config
804 sub-command when changing this configuration option from
805 its default value. See MODULERCFILE description for de‐
806 tails.
807
808 redirect_output
809 Control whether or not the output of module command
810 should be redirected from stderr to stdout.
811
812 Default value is 1. The MODULES_REDIRECT_OUTPUT environ‐
813 ment variable is defined by config sub-command when
814 changing this configuration option from its default
815 value. The --redirect and --no-redirect command line
816 switches change the value of this configuration option.
817 See MODULES_REDIRECT_OUTPUT description for details.
818
819 reset_target_state
820 Control behavior of reset sub-command. Whether environ‐
821 ment should be purged (__purge__), initial environment
822 (__init__) or a named collection (any other value) should
823 restored.
824
825 Default value is __init__. The MODULES_RESET_TARGET_STATE
826 environment variable is defined by config sub-command
827 when changing this configuration option from its default
828 value. See MODULES_RESET_TARGET_STATE description for de‐
829 tails.
830
831 run_quarantine
832 Environment variables to indirectly pass to mod‐
833 ulecmd.tcl.
834
835 This configuration option is set to an empty value by de‐
836 fault. It can be changed at installation time with
837 --with-quarantine-vars option that sets
838 MODULES_RUN_QUARANTINE. This environment variable is also
839 defined by config sub-command when changing this configu‐
840 ration option. See MODULES_RUN_QUARANTINE description for
841 details.
842
843 search_match
844 Module search match style.
845
846 Default value is starts_with. It can be changed at in‐
847 stallation time with --with-search-match option. The
848 MODULES_SEARCH_MATCH environment variable is defined by
849 config sub-command when changing this configuration op‐
850 tion from its default value. The --contains and
851 --starts-with command line switches change the value of
852 this configuration option. See MODULES_SEARCH_MATCH de‐
853 scription for details.
854
855 set_shell_startup
856 Ensure module command definition by setting shell startup
857 file.
858
859 Default value is 0. It can be changed at installation
860 time with --enable-set-shell-startup option. The
861 MODULES_SET_SHELL_STARTUP environment variable is defined
862 by config sub-command when changing this configuration
863 option from its default value. See
864 MODULES_SET_SHELL_STARTUP description for details.
865
866 shells_with_ksh_fpath
867 Ensure module command is defined in ksh when it is
868 started as a sub-shell from the listed shells.
869
870 This configuration option is set to an empty value by de‐
871 fault. The MODULES_SHELLS_WITH_KSH_FPATH environment
872 variable is defined by config sub-command when changing
873 this configuration option from its default value. See
874 MODULES_SHELLS_WITH_KSH_FPATH description for details.
875
876 silent_shell_debug
877 Disablement of shell debugging property for the module
878 command. Also defines if code to silence shell debugging
879 property should be generated in module shell function
880 definition.
881
882 Default value is 0. It can be changed at installation
883 time with --enable-silent-shell-debug-support option. The
884 MODULES_SILENT_SHELL_DEBUG environment variable is de‐
885 fined by config sub-command when changing this configura‐
886 tion option from its default value. See
887 MODULES_SILENT_SHELL_DEBUG description for details.
888
889 siteconfig
890 Primary site-specific configuration script location. See
891 Site-specific configuration section for details.
892
893 Default value is /etc/environment-modules/siteconfig.tcl.
894 It can be changed at installation time with --prefix or
895 --etcdir options. The value of this option cannot be al‐
896 tered.
897
898 tag_abbrev
899 Abbreviations to use to report module tags.
900
901 Default value is auto-loaded=aL:loaded=L:hidden=H:hid‐
902 den-loaded=H:forbidden=F:nearly-forbidden=nF:sticky=S:su‐
903 per-sticky=sS:keep-loaded=kL. It can be changed at in‐
904 stallation time with --with-tag-abbrev option. The
905 MODULES_TAG_ABBREV environment variable is defined by
906 config sub-command when changing this configuration op‐
907 tion from its default value. See MODULES_TAG_ABBREV de‐
908 scription for details.
909
910 tag_color_name
911 Tags whose name should be colored instead of module name.
912
913 This configuration option is set to an empty value by de‐
914 fault. It can be changed at installation time with
915 --with-tag-color-name option. The MODULES_TAG_COLOR_NAME
916 environment variable is defined by config sub-command
917 when changing this configuration option from its default
918 value. See MODULES_TAG_COLOR_NAME description for de‐
919 tails.
920
921 tcl_ext_lib
922 Modules Tcl extension library location.
923
924 Default value is @libdir@/libtclenvmodules.so. It can be
925 changed at installation time with --prefix or --libdir
926 options. The value of this option cannot be altered.
927
928 tcl_linter
929 Command to check syntax of modulefiles with through lint
930 sub-command.
931
932 Default value is nagelfar.tcl. It can be changed at in‐
933 stallation time with --with-tcl-linter and
934 --with-tcl-linter-opts options. The MODULES_TCL_LINTER
935 environment variable is defined by config sub-command
936 when changing this configuration option from its default
937 value. See MODULES_TCL_LINTER description for details.
938
939 term_background
940 Terminal background color kind.
941
942 Default value is dark. It can be changed at installation
943 time with --with-terminal-background option. The
944 MODULES_TERM_BACKGROUND environment variable is defined
945 by config sub-command when changing this configuration
946 option from its default value. See
947 MODULES_TERM_BACKGROUND description for details.
948
949 term_width
950 Set the width of the output.
951
952 Default value is 0. The MODULES_TERM_WIDTH environment
953 variable is defined by config sub-command when changing
954 this configuration option from its default value. The
955 --width/-w command line switches change the value of this
956 configuration option. See MODULES_TERM_WIDTH description
957 for details.
958
959 unload_match_order
960 Unload firstly loaded or lastly loaded module matching
961 request.
962
963 Default value is returnlast. It can be changed at instal‐
964 lation time with --with-unload-match-order option. The
965 MODULES_UNLOAD_MATCH_ORDER environment variable is de‐
966 fined by config sub-command when changing this configura‐
967 tion option from its default value. See
968 MODULES_UNLOAD_MATCH_ORDER description for details.
969
970 variant_shortcut
971 Shortcut characters that could be used to specify or re‐
972 port module variants.
973
974 This configuration option is set to an empty value by de‐
975 fault. It can be changed at installation time with
976 --with-variant-shortcut option. The
977 MODULES_VARIANT_SHORTCUT environment variable is defined
978 by config sub-command when changing this configuration
979 option from its default value. See
980 MODULES_VARIANT_SHORTCUT description for details.
981
982 verbosity
983 Module command verbosity level.
984
985 Default value is normal. It can be changed at installa‐
986 tion time with --with-verbosity option. The
987 MODULES_VERBOSITY environment variable is defined by
988 config sub-command when changing this configuration op‐
989 tion from its default value. The --debug/-D, --silent/-s,
990 --trace/-T and --verbose/-v command line switches change
991 the value of this configuration option. See
992 MODULES_VERBOSITY description for details.
993
994 wa_277 Workaround for Tcsh history issue.
995
996 Default value is 0. It can be changed at installation
997 time with --enable-wa-277 option. The MODULES_WA_277 en‐
998 vironment variable is defined by config sub-command when
999 changing this configuration option from its default
1000 value. See MODULES_WA_277 description for details.
1001
1002 display modulefile...
1003 Display information about one or more modulefiles. The display
1004 sub-command will list the full path of the modulefile and the
1005 environment changes the modulefile will make if loaded. (Note:
1006 It will not display any environment changes found within condi‐
1007 tional statements.)
1008
1009 The parameter modulefile may also be a symbolic modulefile name
1010 or a modulefile alias. It may also leverage a specific syntax to
1011 finely select module version (see Advanced module version speci‐
1012 fiers section below).
1013
1014 edit modulefile
1015 Open modulefile for edition with text editor command designated
1016 by the editor configuration option.
1017
1018 The parameter modulefile may also be a symbolic modulefile name
1019 or a modulefile alias. It may also leverage a specific syntax to
1020 finely select module version (see Advanced module version speci‐
1021 fiers section below).
1022
1023 help [modulefile...]
1024 Print the usage of each sub-command. If an argument is given,
1025 print the Module-specific help information for the modulefile.
1026
1027 The parameter modulefile may also be a symbolic modulefile name
1028 or a modulefile alias. It may also leverage a specific syntax to
1029 finely select module version (see Advanced module version speci‐
1030 fiers section below).
1031
1032 info-loaded modulefile
1033 Returns the names of currently loaded modules matching passed
1034 modulefile. Returns an empty string if passed modulefile does
1035 not match any loaded modules. See module-info loaded in the
1036 modulefile man page for further explanation.
1037
1038 initadd modulefile...
1039 Add modulefile to the shell's initialization file in the user's
1040 home directory. The startup files checked (in order) are:
1041
1042 C Shell
1043 .modules, .cshrc, .csh_variables and .login
1044
1045 TENEX C Shell
1046 .modules, .tcshrc, .cshrc, .csh_variables and .login
1047
1048 Bourne and Korn Shells
1049 .modules, .profile
1050
1051 GNU Bourne Again Shell
1052 .modules, .bash_profile, .bash_login, .profile and .bashrc
1053
1054 Z Shell
1055 .modules, .zshrc, .zshenv and .zlogin
1056
1057 Friendly Interactive Shell
1058 .modules, .config/fish/config.fish
1059
1060 If a module load line is found in any of these files, the mod‐
1061 ulefiles are appended to any existing list of modulefiles. The
1062 module load line must be located in at least one of the files
1063 listed above for any of the init sub-commands to work properly.
1064 If the module load line is found in multiple shell initializa‐
1065 tion files, all of the lines are changed.
1066
1067 initclear
1068 Clear all of the modulefiles from the shell's initialization
1069 files.
1070
1071 initlist
1072 List all of the modulefiles loaded from the shell's initializa‐
1073 tion file.
1074
1075 initprepend modulefile...
1076 Does the same as initadd but prepends the given modules to the
1077 beginning of the list.
1078
1079 initrm modulefile...
1080 Remove modulefile from the shell's initialization files.
1081
1082 initswitch modulefile1 modulefile2
1083 Switch modulefile1 with modulefile2 in the shell's initializa‐
1084 tion files.
1085
1086 is-avail modulefile...
1087 Returns a true value if any of the listed modulefiles exists in
1088 enabled MODULEPATH. Returns a false value otherwise. See
1089 is-avail in the modulefile man page for further explanation.
1090
1091 The parameter modulefile may also be a symbolic modulefile name
1092 or a modulefile alias. It may also leverage a specific syntax to
1093 finely select module version (see Advanced module version speci‐
1094 fiers section below).
1095
1096 is-loaded [modulefile...]
1097 Returns a true value if any of the listed modulefiles has been
1098 loaded or if any modulefile is loaded in case no argument is
1099 provided. Returns a false value otherwise. See is-loaded in the
1100 modulefile man page for further explanation.
1101
1102 The parameter modulefile may also be a symbolic modulefile name
1103 or a modulefile alias. It may also leverage a specific syntax to
1104 finely select module version (see Advanced module version speci‐
1105 fiers section below).
1106
1107 is-saved [collection...]
1108 Returns a true value if any of the listed collections exists or
1109 if any collection exists in case no argument is provided. Re‐
1110 turns a false value otherwise. See is-saved in the modulefile
1111 man page for further explanation.
1112
1113 is-used [directory...]
1114 Returns a true value if any of the listed directories has been
1115 enabled in MODULEPATH or if any directory is enabled in case no
1116 argument is provided. Returns a false value otherwise. See
1117 is-used in the modulefile man page for further explanation.
1118
1119 keyword [-a] [-j] string
1120 See search.
1121
1122 lint [-a] [modulefile...]
1123 Analyze syntax of one or more modulefiles with the linter com‐
1124 mand designated by the tcl_linter configuration option.
1125
1126 The parameter modulefile may also be a symbolic modulefile name
1127 or a modulefile alias. It may also leverage a specific syntax to
1128 finely select module version (see Advanced module version speci‐
1129 fiers section below).
1130
1131 If no modulefile is specified, all the modulefiles and modulerc
1132 available in enabled modulepaths are analyzed as well as global
1133 and user rc files. Hidden modulefiles are also analyzed when
1134 --all/-a option is set.
1135
1136 When nagelfar.tcl is the selected linter command, a static Tcl
1137 syntax analysis is performed. In addition, syntax of modulefile
1138 commands are checked in these files based on their kind
1139 (global/user rc, modulerc or modulefile).
1140
1141 list [-t|-l|-j] [-a] [-o LIST] [-S|-C] [pattern...]
1142 List loaded modules. If a pattern is given, then the loaded mod‐
1143 ules are filtered to only list those whose name matches this
1144 pattern. It may contain wildcard characters. pattern is matched
1145 in a case insensitive manner by default. If multiple patterns
1146 are given, loaded module has to match at least one of them to be
1147 listed.
1148
1149 Module tags applying to the loaded modules are reported along
1150 the module name they are associated to (see Module tags sec‐
1151 tion).
1152
1153 Module variants selected on the loaded modules are reported
1154 along the module name they belong to (see Module variants sec‐
1155 tion).
1156
1157 A Key section is added at the end of the output in case some el‐
1158 ements are reported in parentheses or chevrons along module name
1159 or if some graphical rendition is made over some output ele‐
1160 ments. This Key section gives hints on the meaning of such ele‐
1161 ments.
1162
1163 The parameter pattern may also refer to a symbolic modulefile
1164 name or a modulefile alias. It may also leverage a specific syn‐
1165 tax to finely select module version (see Advanced module version
1166 specifiers section below).
1167
1168 If pattern contains variant specification, loaded modules are
1169 included in results only if they match it. pattern may be a bare
1170 variant specification without mention of a module name.
1171
1172 load [options] modulefile...
1173 Load modulefile into the shell environment.
1174
1175 load command accepts the following options:
1176
1177 • --auto|--no-auto
1178
1179 • -f|--force
1180
1181 • --tag=taglist
1182
1183 Once loaded, the loaded module tag is associated to the loaded
1184 module. If module has been automatically loaded by another mod‐
1185 ule, the auto-loaded tag is associated instead (see Module tags
1186 section).
1187
1188 The parameter modulefile may also be a symbolic modulefile name
1189 or a modulefile alias. It may also leverage a specific syntax to
1190 finely select module version (see Advanced module version speci‐
1191 fiers section below).
1192
1193 The --tag option accepts a list of module tags to apply to mod‐
1194 ulefile once loaded. If module is already loaded, tags from
1195 taglist are added to the list of tags already applied to this
1196 module.
1197
1198 load-any [options] modulefile...
1199 Load into the shell environment one of the modulefile specified.
1200 Try to load each modulefile specified in list from the left to
1201 the right until one got loaded or is found already loaded. Do
1202 not complain if modulefile cannot be found but if its evaluation
1203 fails an error is reported.
1204
1205 load-any command accepts the following options:
1206
1207 • --auto|--no-auto
1208
1209 • -f|--force
1210
1211 • --tag=taglist
1212
1213 Once loaded, the loaded module tag is associated to the loaded
1214 module. If module has been automatically loaded by another mod‐
1215 ule, the auto-loaded tag is associated instead (see Module tags
1216 section).
1217
1218 The parameter modulefile may also be a symbolic modulefile name
1219 or a modulefile alias. It may also leverage a specific syntax to
1220 finely select module version (see Advanced module version speci‐
1221 fiers section below).
1222
1223 The --tag option accepts a list of module tags to apply to mod‐
1224 ulefile once loaded. If module is already loaded, tags from
1225 taglist are added to the list of tags already applied to this
1226 module.
1227
1228 mod-to-sh [options] shell modulefile...
1229 Evaluate modulefile and report resulting environment changes as
1230 code for shell.
1231
1232 mod-to-sh command accepts the following options:
1233
1234 • --auto|--no-auto
1235
1236 • -f|--force
1237
1238 An attempt to load modulefile is made to get its environment
1239 changes. This evaluation does not change the current shell envi‐
1240 ronment. Like for load sub-command, no evaluation occurs if mod‐
1241 ulefile is found loaded in current environment.
1242
1243 Changes made on environment variable intended for Modules pri‐
1244 vate use (e.g., LOADEDMODULES, _LMFILES_, __MODULES_*) are ig‐
1245 nored.
1246
1247 Shell could be any shell name supported by modulecmd.tcl.
1248
1249 Produced shell code is returned on the message output channel by
1250 modulecmd.tcl. Thus it is not rendered in current environment by
1251 the module shell function.
1252
1253 mod-to-sh automatically set verbosity to the silent mode, to
1254 avoid messages to mix with the produced shell code. Verbosity is
1255 not changed if set to the trace mode or any higher debugging
1256 level.
1257
1258 The parameter modulefile may also be a symbolic modulefile name
1259 or a modulefile alias. It may also leverage a specific syntax to
1260 finely select module version (see Advanced module version speci‐
1261 fiers section below).
1262
1263 path modulefile
1264 Print path to modulefile.
1265
1266 The parameter modulefile may also be a symbolic modulefile name
1267 or a modulefile alias. It may also leverage a specific syntax to
1268 finely select module version (see Advanced module version speci‐
1269 fiers section below).
1270
1271 paths pattern
1272 Print path of available modulefiles matching pattern.
1273
1274 The parameter pattern may also be a symbolic modulefile name or
1275 a modulefile alias. It may also leverage a specific syntax to
1276 finely select module version (see Advanced module version speci‐
1277 fiers section below).
1278
1279 If pattern contains variant specification or Extra specifier,
1280 the Extra match search process is triggered to collect command
1281 information used in modulefiles. Modules are included in results
1282 only if they match pattern variant specification and extra spec‐
1283 ifier. pattern may be a bare variant specification or extra
1284 specifier without mention of a module name.
1285
1286 prepend-path [-d C|--delim C|--delim=C] [--duplicates] variable
1287 value...
1288 Prepend value to environment variable. The variable is a colon,
1289 or delimiter, separated list. See prepend-path in the modulefile
1290 man page for further explanation.
1291
1292 When prepend-path is called as a module sub-command, the refer‐
1293 ence counter variable, which denotes the number of times value
1294 has been added to environment variable, is not updated unless if
1295 the --duplicates option is set.
1296
1297 purge [-f]
1298 Unload all loaded modulefiles.
1299
1300 When the --force option is set, also unload sticky modules and
1301 modulefiles that are depended by non-unloadable modules.
1302
1303 refresh
1304 Force a refresh of all non-persistent components of currently
1305 loaded modules. This should be used on derived shells where
1306 shell completions, shell aliases or shell functions need to be
1307 reinitialized but the environment variables have already been
1308 set by the currently loaded modules.
1309
1310 Loaded modules are evaluated in refresh mode following their
1311 load order. In this evaluation mode only the complete,
1312 set-alias, set-function and puts modulefile commands will pro‐
1313 duce environment changes. Other modulefile commands that produce
1314 environment changes (like setenv or append-path) are ignored
1315 during a refresh evaluation as their changes should already be
1316 applied.
1317
1318 Only the loaded modules defining non-persistent environment
1319 changes are evaluated in refresh mode. Such loaded modules are
1320 listed in the __MODULES_LMREFRESH environment variable.
1321
1322 reload Unload then load all loaded modulefiles.
1323
1324 No unload then load is performed and an error is returned if the
1325 loaded modulefiles have unsatisfied constraint corresponding to
1326 the prereq and conflict they declare.
1327
1328 remove-path [-d C|--delim C|--delim=C] [--index] variable value...
1329 Remove value from the colon, or delimiter, separated list in en‐
1330 vironment variable. See remove-path in the modulefile man page
1331 for further explanation.
1332
1333 When remove-path is called as a module sub-command, the refer‐
1334 ence counter variable, which denotes the number of times value
1335 has been added to environment variable, is ignored and value is
1336 removed whatever the reference counter value set.
1337
1338 reset Restore initial environment, which corresponds to the loaded
1339 state after Modules initialization.
1340
1341 reset sub-command restores the environment definition found in
1342 __MODULES_LMINIT environment variable.
1343
1344 reset behavior can be changed with reset_target_state. This
1345 configuration option is set by default to __init__, which corre‐
1346 sponds to the above behavior description. When set to __purge__,
1347 reset performs a purge of the environment. When set to any other
1348 value, reset performs a restore of corresponding name collec‐
1349 tion.
1350
1351 restore [collection]
1352 Restore the environment state as defined in collection. If col‐
1353 lection name is not specified, then it is assumed to be the de‐
1354 fault collection if it exists, __init__ special collection oth‐
1355 erwise. If collection is a fully qualified path, it is restored
1356 from this location rather than from a file under the user's col‐
1357 lection directory. If MODULES_COLLECTION_TARGET is set, a suffix
1358 equivalent to the value of this variable is appended to the col‐
1359 lection file name to restore.
1360
1361 If collection name is __init__, initial environment state de‐
1362 fined in __MODULES_LMINIT environment variable is restored.
1363
1364 When restoring a collection, the currently set MODULEPATH direc‐
1365 tory list and the currently loaded modulefiles are unused and
1366 unloaded then used and loaded to exactly match the MODULEPATH
1367 and loaded modulefiles lists saved in this collection file. The
1368 order of the paths and modulefiles set in collection is pre‐
1369 served when restoring. It means that currently loaded modules
1370 are unloaded to get the same LOADEDMODULES root than collection
1371 and currently used module paths are unused to get the same
1372 MODULEPATH root. Then missing module paths are used and missing
1373 modulefiles are loaded.
1374
1375 If a module, without a default version explicitly defined, is
1376 recorded in a collection by its bare name: loading this module
1377 when restoring the collection will fail if the configuration op‐
1378 tion implicit_default is disabled.
1379
1380 rm [--auto|--no-auto] [-f] modulefile...
1381 See unload.
1382
1383 save [collection]
1384 Record the currently set MODULEPATH directory list and the cur‐
1385 rently loaded modulefiles in a collection file under the user's
1386 collection directory $HOME/.module. If collection name is not
1387 specified, then it is assumed to be the default collection. If
1388 collection is a fully qualified path, it is saved at this loca‐
1389 tion rather than under the user's collection directory.
1390
1391 If MODULES_COLLECTION_TARGET is set, a suffix equivalent to the
1392 value of this variable will be appended to the collection file
1393 name.
1394
1395 By default, if a loaded modulefile corresponds to the explicitly
1396 defined default module version, the bare module name is
1397 recorded. If the configuration option implicit_default is en‐
1398 abled, the bare module name is also recorded for the implicit
1399 default module version. If MODULES_COLLECTION_PIN_VERSION is set
1400 to 1, module version is always recorded even if it is the de‐
1401 fault version.
1402
1403 By default, only the module tags specifically set with the --tag
1404 option or resulting from a specific module state (like
1405 auto-loaded and keep-loaded tags) are recorded in collection. If
1406 MODULES_COLLECTION_PIN_TAG is set to 1, all tags are recorded in
1407 collection except nearly-forbidden tag.
1408
1409 No collection is recorded and an error is returned if the loaded
1410 modulefiles have unsatisfied constraint corresponding to the
1411 prereq and conflict they declare.
1412
1413 savelist [-t|-l|-j] [-a] [-S|-C] [pattern...]
1414 List collections that are currently saved under the user's col‐
1415 lection directory. If MODULES_COLLECTION_TARGET is set, only
1416 collections matching the target suffix will be displayed unless
1417 if the --all/-a option is set.
1418
1419 If a pattern is given, then the collections are filtered to only
1420 list those whose name matches this pattern. It may contain wild‐
1421 card characters. pattern is matched in a case insensitive man‐
1422 ner by default. If multiple patterns are given, collection has
1423 to match at least one of them to be listed.
1424
1425 Stash collections are not listed unless if the --all/-a option
1426 is set. Stash collections can be listed with stashlist sub-com‐
1427 mand.
1428
1429 saverm [collection]
1430 Delete the collection file under the user's collection direc‐
1431 tory. If collection name is not specified, then it is assumed to
1432 be the default collection. If MODULES_COLLECTION_TARGET is set,
1433 a suffix equivalent to the value of this variable will be ap‐
1434 pended to the collection file name.
1435
1436 saveshow [collection]
1437 Display the content of collection. If collection name is not
1438 specified, then it is assumed to be the default collection if it
1439 exists, __init__ special collection otherwise. If collection is
1440 a fully qualified path, this location is displayed rather than a
1441 collection file under the user's collection directory. If
1442 MODULES_COLLECTION_TARGET is set, a suffix equivalent to the
1443 value of this variable will be appended to the collection file
1444 name.
1445
1446 If collection name is __init__, initial environment content de‐
1447 fined in __MODULES_LMINIT environment variable is displayed.
1448
1449 search [-a] [-j] string
1450 Seeks through the module-whatis information of all modulefiles
1451 for the specified string. All module-whatis information matching
1452 the string in a case insensitive manner will be displayed.
1453 string may contain wildcard characters.
1454
1455 sh-to-mod shell script [arg...]
1456 Evaluate with shell the designated script with defined arguments
1457 to find out the environment changes it does. Environment prior
1458 and after script evaluation are compared to determine these
1459 changes. They are translated into modulefile commands to output
1460 the modulefile content equivalent to the evaluation of shell
1461 script.
1462
1463 Changes on environment variables, shell aliases, shell func‐
1464 tions, shell completions and current working directory are
1465 tracked.
1466
1467 Changes made on environment variable intended for Modules pri‐
1468 vate use (e.g., LOADEDMODULES, _LMFILES_, __MODULES_*) are ig‐
1469 nored.
1470
1471 Shell could be specified as a command name or a fully qualified
1472 pathname. The following shells are supported: sh, dash, csh,
1473 tcsh, bash, ksh, ksh93, zsh and fish.
1474
1475 show modulefile...
1476 See display.
1477
1478 source [options] modulefile...
1479 Execute modulefile into the shell environment. Once executed
1480 modulefile is not marked loaded in shell environment which dif‐
1481 fer from load sub-command.
1482
1483 source command accepts the following options:
1484
1485 • --auto|--no-auto
1486
1487 • -f|--force
1488
1489 If modulefile corresponds to a fully qualified path, this file
1490 is executed. Otherwise modulefile is searched among the avail‐
1491 able modulefiles.
1492
1493 The parameter modulefile may also be a symbolic modulefile name
1494 or a modulefile alias. It may also leverage a specific syntax to
1495 finely select module version (see Advanced module version speci‐
1496 fiers section below).
1497
1498 stash Save current environment in a stash collection then reset to
1499 initial environment.
1500
1501 A collection is created only if current environment state dif‐
1502 fers from initial environment. Stash collection is named
1503 stash-<unix_millis_timestamp> where <unix_millis_timestamp> is
1504 the number of milliseconds between Unix Epoch and when this com‐
1505 mand is run.
1506
1507 If MODULES_COLLECTION_TARGET is set, a suffix equivalent to the
1508 value of this variable will be appended to the stash collection
1509 file name.
1510
1511 stashclear
1512 Remove all stash collection files of current collection_target.
1513 If no collection target is currently set, remove stash collec‐
1514 tion files without a target suffix.
1515
1516 stashlist [-t|-l|-j]
1517 List all stash collection files of current collection_target. If
1518 no collection target is currently set, list stash collection
1519 files without a target suffix.
1520
1521 stashpop [stash]
1522 Restore stash collection then delete corresponding collection
1523 file.
1524
1525 stash is either a full stash collection name (i.e.,
1526 stash-<unix_millis_timestamp>) or a stash index. Most recent
1527 stash collection has index 0, 1 is the one before it. When no
1528 stash is given the latest stash collection is assumed (that is
1529 stash index 0).
1530
1531 If MODULES_COLLECTION_TARGET is set, a suffix equivalent to the
1532 value of this variable will be appended to the stash collection
1533 file name to restore.
1534
1535 stashrm [stash]
1536 Remove stash collection file.
1537
1538 stash is either a full stash collection name (i.e.,
1539 stash-<unix_millis_timestamp>) or a stash index. Most recent
1540 stash collection has index 0, 1 is the one before it. When no
1541 stash is given the latest stash collection is assumed (that is
1542 stash index 0).
1543
1544 If MODULES_COLLECTION_TARGET is set, a suffix equivalent to the
1545 value of this variable will be appended to the stash collection
1546 file name to delete.
1547
1548 stashshow [stash]
1549 Display the content of stash collection file.
1550
1551 stash is either a full stash collection name (i.e.,
1552 stash-<unix_millis_timestamp>) or a stash index. Most recent
1553 stash collection has index 0, 1 is the one before it. When no
1554 stash is given the latest stash collection is assumed (that is
1555 stash index 0).
1556
1557 If MODULES_COLLECTION_TARGET is set, a suffix equivalent to the
1558 value of this variable will be appended to the stash collection
1559 file name to display.
1560
1561 state [name]
1562 Gets modulecmd.tcl states. Reports the currently set value of
1563 passed state name or all existing states if no name passed.
1564
1565 swap [options] [modulefile1] modulefile2
1566 See switch.
1567
1568 switch [options] [modulefile1] modulefile2
1569 Switch loaded modulefile1 with modulefile2. If modulefile1 is
1570 not specified, then it is assumed to be the currently loaded
1571 module with the same root name as modulefile2.
1572
1573 switch command accepts the following options:
1574
1575 • --auto|--no-auto
1576
1577 • -f|--force
1578
1579 • --tag=taglist
1580
1581 The parameter modulefile may also be a symbolic modulefile name
1582 or a modulefile alias. It may also leverage a specific syntax to
1583 finely select module version (see Advanced module version speci‐
1584 fiers section below).
1585
1586 The --tag option accepts a list of module tags to apply to mod‐
1587 ulefile once loaded. If module is already loaded, tags from
1588 taglist are added to the list of tags already applied to this
1589 module.
1590
1591 test modulefile...
1592 Execute and display results of the Module-specific tests for the
1593 modulefile.
1594
1595 The parameter modulefile may also be a symbolic modulefile name
1596 or a modulefile alias. It may also leverage a specific syntax to
1597 finely select module version (see Advanced module version speci‐
1598 fiers section below).
1599
1600 try-add [options] modulefile...
1601 See try-load.
1602
1603 try-load [options] modulefile...
1604 Like load sub-command, load modulefile into the shell environ‐
1605 ment, but do not complain if modulefile cannot be found. If mod‐
1606 ulefile is found but its evaluation fails, error is still re‐
1607 ported.
1608
1609 try-load command accepts the following options:
1610
1611 • --auto|--no-auto
1612
1613 • -f|--force
1614
1615 • --tag=taglist
1616
1617 Once loaded, the loaded module tag is associated to the loaded
1618 module. If module has been automatically loaded by another mod‐
1619 ule, the auto-loaded tag is associated instead (see Module tags
1620 section).
1621
1622 The parameter modulefile may also be a symbolic modulefile name
1623 or a modulefile alias. It may also leverage a specific syntax to
1624 finely select module version (see Advanced module version speci‐
1625 fiers section below).
1626
1627 The --tag option accepts a list of module tags to apply to mod‐
1628 ulefile once loaded. If module is already loaded, tags from
1629 taglist are added to the list of tags already applied to this
1630 module.
1631
1632 unload [--auto|--no-auto] [-f] modulefile...
1633 Remove modulefile from the shell environment.
1634
1635 The parameter modulefile may also be a symbolic modulefile name
1636 or a modulefile alias. It may also leverage a specific syntax to
1637 finely select module version (see Advanced module version speci‐
1638 fiers section below).
1639
1640 unuse directory...
1641 Remove one or more directories from the MODULEPATH environment
1642 variable.
1643
1644 If module unuse is called during a modulefile evaluation, the
1645 reference counter environment variable
1646 __MODULES_SHARE_MODULEPATH, which denotes the number of times
1647 directory has been enabled, is checked and directory is removed
1648 only if its relative counter is equal to 1 or not defined. Oth‐
1649 erwise directory is kept and reference counter is decreased by
1650 1. When module unuse is called from the command-line or within
1651 an initialization modulefile script directory is removed what‐
1652 ever the reference counter value set.
1653
1654 If directory corresponds to the concatenation of multiple paths
1655 separated by colon character, each path is treated separately.
1656
1657 use [-a|--append] directory...
1658 Prepend one or more directories to the MODULEPATH environment
1659 variable. The --append flag will append the directory to
1660 MODULEPATH.
1661
1662 When directory is already defined in MODULEPATH, it is not added
1663 again or moved at the end or at the beginning of the environment
1664 variable.
1665
1666 If module use is called during a modulefile evaluation, the ref‐
1667 erence counter environment variable __MODULES_SHARE_MODULEPATH
1668 is also set to increase the number of times directory has been
1669 added to MODULEPATH. Reference counter is not updated when
1670 module use is called from the command-line or within an initial‐
1671 ization modulefile script.
1672
1673 A directory that does not exist yet can be specified as argument
1674 and then be added to MODULEPATH.
1675
1676 whatis [-a] [-j] [pattern...]
1677 Display the information set up by the module-whatis commands in‐
1678 side modulefiles matching pattern. pattern may contain wildcard
1679 characters. If no pattern is specified, all module-whatis lines
1680 will be shown.
1681
1682 The parameter pattern may also be a symbolic modulefile name or
1683 a modulefile alias. It may also leverage a specific syntax to
1684 finely select module version (see Advanced module version speci‐
1685 fiers section below).
1686
1687 If pattern contains variant specification or Extra specifier,
1688 the Extra match search process is triggered to collect command
1689 information used in modulefiles. Modules are included in results
1690 only if they match pattern variant specification and extra spec‐
1691 ifier. pattern may be a bare variant specification or extra
1692 specifier without mention of a module name.
1693
1694 Modulefiles
1695 modulefiles are written in the Tool Command Language (Tcl) and are in‐
1696 terpreted by modulecmd.tcl. modulefiles can use conditional statements.
1697 Thus the effect a modulefile will have on the environment may change
1698 depending upon the current state of the environment.
1699
1700 Environment variables are unset when unloading a modulefile. Thus, it
1701 is possible to load a modulefile and then unload it without having the
1702 environment variables return to their prior state.
1703
1704 Advanced module version specifiers
1705 When the advanced module version specifiers mechanism is enabled (see
1706 MODULES_ADVANCED_VERSION_SPEC), the specification of modulefile passed
1707 on Modules sub-commands changes. After the module name a version con‐
1708 straint and variants may be added.
1709
1710 Version specifiers
1711 After the module name a version constraint prefixed by the @ character
1712 may be added. It could be directly appended to the module name or sepa‐
1713 rated from it with a space character.
1714
1715 Constraints can be expressed to refine the selection of module version
1716 to:
1717
1718 • a single version with the @version syntax, for instance foo@1.2.3
1719 syntax will select module foo/1.2.3
1720
1721 • a list of versions with the @version1,version2,... syntax, for in‐
1722 stance foo@1.2.3,1.10 will match modules foo/1.2.3 and foo/1.10
1723
1724 • a range of versions with the @version1:, @:version2 and @ver‐
1725 sion1:version2 syntaxes, for instance foo@1.2: will select all ver‐
1726 sions of module foo greater than or equal to 1.2, foo@:1.3 will se‐
1727 lect all versions less than or equal to 1.3 and foo@1.2:1.3 matches
1728 all versions between 1.2 and 1.3 including 1.2 and 1.3 versions
1729
1730 Advanced specification of single version or list of versions may bene‐
1731 fit from the activation of the extended default mechanism (see
1732 MODULES_EXTENDED_DEFAULT) to use an abbreviated notation like @1 to re‐
1733 fer to more precise version numbers like 1.2.3. Range of versions on
1734 its side natively handles abbreviated versions.
1735
1736 In order to be specified in a range of versions or compared to a range
1737 of versions, the version major element should corresponds to a number.
1738 For instance 10a, 1.2.3, 1.foo are versions valid for range comparison
1739 whereas default or foo.2 versions are invalid for range comparison.
1740
1741 Range of versions can be specified in version list, for instance
1742 foo@:1.2,1.4:1.6,1.8:. Such specification helps to exclude specific
1743 versions, like versions 1.3 and 1.7 in previous example.
1744
1745 If the implicit default mechanism is also enabled (see
1746 MODULES_IMPLICIT_DEFAULT), a default and latest symbolic versions are
1747 automatically defined for each module name (also at each directory
1748 level for deep modulefiles). These automatic version symbols are de‐
1749 fined unless a symbolic version, alias, or regular module version al‐
1750 ready exists for these default or latest version names. Using the
1751 mod@latest (or mod/latest) syntax ensures highest available version
1752 will be selected.
1753
1754 The symbolic version loaded may be used over loaded module name to des‐
1755 ignate the loaded version of the module with associated selected vari‐
1756 ants. This version symbol should be specified using the @ prefix nota‐
1757 tion (e.g., foo@loaded). An error is returned if no version of desig‐
1758 nated module is currently loaded.
1759
1760 Variants
1761 After the module name, variants can be specified. Module variants are
1762 alternative evaluation of the same modulefile. A variant is specified
1763 by associating a value to its name. This specification is then trans‐
1764 mitted to the evaluating modulefile which instantiates the variant in
1765 the ModuleVariant array variable when reaching the variant modulefile
1766 command declaring this variant.
1767
1768 Variant can be specified with the name=value syntax where name is the
1769 declared variant name and value, the value this variant is set to when
1770 evaluating the modulefile.
1771
1772 Boolean variants can be specified with the +name syntax to set this
1773 variant on and with the -name or ~name syntaxes to set this variant
1774 off. The -name syntax is not supported on ml command as the minus sign
1775 already means to unload designated module. The ~name and +name syntaxes
1776 could also be defined appended to another specification word (e.g., the
1777 module name, version or another variant specification), whereas -name
1778 syntax must be the start of a new specification word.
1779
1780 Boolean variants may also be specified with the name=value syntax.
1781 value should be set to 1, true, t, yes, y or on to enable the variant
1782 or it should be set to 0, false, f, no, n or off to disable the vari‐
1783 ant.
1784
1785 Shortcuts may be used to abbreviate variant specification. The
1786 variant_shortcut configuration option associates shortcut character to
1787 variant name. With a shortcut defined, variant could be specified with
1788 the <shortcut>value syntax. For instance if character % is set as a
1789 shortcut for variant foo, the %value syntax is equivalent to the
1790 foo=value syntax.
1791
1792 Specific characters used in variant specification syntax cannot be used
1793 as part of the name of a module. These specific characters are +, ~, =
1794 and all characters set as variant shortcut. Exception is made for +
1795 character which could be set one or several consecutive times at the
1796 end of module name (e.g., name+ or name++).
1797
1798 Extra specifier
1799 After the module name, extra specifiers can be defined in module search
1800 context. Extra specifiers are an extra query to list available module‐
1801 files based on their content definition. They rely on the Extra match
1802 search mechanism that collects content of available modulefiles.
1803
1804 Extra specifier can be set with the element:name syntax where element
1805 is a Tcl modulefile command and name an item defined by this command.
1806 Depending on the kind of Tcl modulefile command, name can refer to an
1807 environment variable, a shell alias, a module specification, etc.
1808
1809 Supported extra specifier elements are:
1810
1811 • variant, complete, uncomplete, set-alias, unset-alias, set-function,
1812 unset-function, chdir, family
1813
1814 • setenv, unsetenv, append-path, prepend-path, remove-path and pushenv:
1815 these elements related to environment variable handling may also be
1816 aliased envvar
1817
1818 • prereq, prereq-any, prereq-all, depends-on, always-load, load,
1819 load-any, try-load, switch and switch-on: these elements related to
1820 module requirement definition accept a module specification as value
1821 name and may be aliased require
1822
1823 • conflict, unload, switch and switch-off: these elements related to
1824 module incompatibility definition accept a module specification as
1825 value name and may be aliased incompat
1826
1827 Each of the above supported elements corresponds to a Tcl modulefile
1828 command. load, load-any, try-load, switch and unload match correspond‐
1829 ing module sub-commands. prereq-any is an alias on prereq and vice
1830 versa as both Tcl modulefile commands are the same. Following the same
1831 trend prereq-all is an alias on depends-on and vice versa. Regarding
1832 switch-off and switch-on elements they correspond respectively to the
1833 module to unload (if specified) and the module to load on a module
1834 switch command. switch is an alias that matches both switch-off and
1835 switch-on elements. require and incompat elements do not match module
1836 commands where --not-req option is set.
1837
1838 When several extra specifiers are set on a module search query, they
1839 act as an AND operation. Which means modules listed in result are those
1840 matching all extra specifiers defined.
1841
1842 Module specification used as name value for some extra specifier ele‐
1843 ments may leverage Advanced module version specifiers syntax. However
1844 if a module version range or list is implied, it is currently resolved
1845 to existing modules. Thus it may not match modulefile definitions tar‐
1846 geting modules that do not exist. In addition, module aliases and sym‐
1847 bolic versions are not resolved to their target either if set in extra
1848 specifier query or in modulefile definition.
1849
1850 Extra specifier can only be set in a module search context (avail,
1851 whatis and paths sub-commands). An error is raised if used on a module
1852 specification query in another context. An error is also raised if an
1853 unknown extra specifier element is defined in search query.
1854
1855 Module tags
1856 Module tags are piece of information that can be associated to individ‐
1857 ual modulefiles. Tags could be purely informational or may lead to spe‐
1858 cific behaviors.
1859
1860 Module tags may be inherited from the module state set by a modulefile
1861 command or consequence of a module action. The inherited tags are:
1862
1863 • auto-loaded: module has been automatically loaded by another module
1864
1865 • forbidden: module has been set forbidden through the use of the
1866 module-forbid command and thus this module cannot be loaded.
1867
1868 • hidden: module has been set hidden through the use of the module-hide
1869 command and thus it is not reported by default among the result of an
1870 avail sub-command.
1871
1872 • hidden-loaded: module has been set hidden once loaded through the use
1873 of the module-hide --hidden-loaded command thus it is not reported bu
1874 default among the result of a list sub-command.
1875
1876 • loaded: module is currently loaded
1877
1878 • nearly-forbidden: module will soon be forbidden, which has been set
1879 through the use of the module-forbid command. Thus this module will
1880 soon not be able to load anymore.
1881
1882 Tags may also be associated to modules by using the module-tag module‐
1883 file command. Among tags that could be set this way, some have a spe‐
1884 cial meaning:
1885
1886 • keep-loaded: auto-loaded module cannot be automatically unloaded.
1887 This tag is also set through the use of the always-load command.
1888
1889 • sticky: module once loaded cannot be unloaded unless forced or
1890 reloaded (see Sticky modules section)
1891
1892 • super-sticky: module once loaded cannot be unloaded unless reloaded,
1893 module cannot be unloaded even if forced (see Sticky modules section)
1894
1895 The --tag option helps to apply additional tags to modules. It is
1896 available on load, load-any, switch and try-load sub-commands and on
1897 always-load, depends-on, module, prereq, prereq-all and prereq-any mod‐
1898 ulefile commands. In case the designated module is already loaded, the
1899 additional tags are added to the list of tags already applied to this
1900 module.
1901
1902 Module tags are reported along the module they are associated to on
1903 avail and list sub-command results and also when module's loading, un‐
1904 loading, refreshing or tagging evaluation is mentioned. Tags could be
1905 reported either:
1906
1907 • along the module name, all tags set within angle brackets, each tag
1908 separated from the others with a colon character (e.g., foo/1.2
1909 <tag1:tag2>).
1910
1911 • graphically rendered over the module name for each tag associated to
1912 a Select Graphic Rendition (SGR) code in the color palette (see
1913 MODULES_COLORS)
1914
1915 When an abbreviated string is associated to a tag name (see
1916 MODULES_TAG_ABBREV), this abbreviation is used to report tag along the
1917 module name or the tag is graphically rendered over the module name if
1918 a SGR code is associated with tag abbreviation in the color palette.
1919 With an abbreviation set, the SGR code associated to the tag full name
1920 is ignored thus an SGR code should be associated to the abbreviation to
1921 get a graphical rendering of tag. If the abbreviation associated to a
1922 tag corresponds to the empty string, tag is not reported.
1923
1924 Graphical rendering is made over the tag name or abbreviation instead
1925 of over the module name for each tag name or abbreviation set in the
1926 MODULES_TAG_COLOR_NAME environment variable.
1927
1928 When several tags have to be rendered graphically over the same module
1929 name, each tag is rendered over a sub-part of the module name. In case
1930 more tags need to be rendered than the total number of characters in
1931 the module name, the remaining tags are graphically rendered over the
1932 tag name instead of over the module name.
1933
1934 When the JSON output mode is enabled (with --json), tags are reported
1935 by their name under the tags attribute. Tag abbreviation and color ren‐
1936 dering do not apply on JSON output.
1937
1938 Module tags cannot be used in search query to designate a modulefile.
1939
1940 Sticky modules
1941 Modules are said sticky when they cannot be unloaded (they stick to the
1942 loaded environment). Two kind of stickiness can be distinguished:
1943
1944 • sticky module: cannot be unloaded unless if the unload is forced or
1945 if the module is reloaded after being unloaded or if restoring a col‐
1946 lection.
1947
1948 • super-sticky module: cannot be unloaded unless if the module is
1949 reloaded after being unloaded; super-sticky modules cannot be un‐
1950 loaded even if the unload is forced.
1951
1952 Modules are designated sticky by associating them the sticky or the su‐
1953 per-sticky module tag with the module-tag modulefile command.
1954
1955 When stickiness is defined over the generic module name (and not over a
1956 specific module version, a version list or a version range), sticky or
1957 super-sticky module can be swapped by another version of module. For
1958 instance if the sticky tag is defined over foo module, loaded module
1959 foo/1.2 can be swapped by foo/2.0. Such stickiness definition means one
1960 version of module should stay loaded whatever version it is.
1961
1962 When restoring a collection or resetting to the initial environment,
1963 sticky modules are unloaded to ensure restore or reset sub-commands
1964 fully set the environment in target collection or initial state. Su‐
1965 per-sticky modules still cannot be unloaded with restore and reset
1966 sub-commands.
1967
1968 Module variants
1969 Module variants are alternative evaluation of the same modulefile. A
1970 variant is specified by associating a value to its name when designat‐
1971 ing module. Variant specification relies on the Advanced module ver‐
1972 sion specifiers mechanism.
1973
1974 Once specified, variant's value is transmitted to the evaluating mod‐
1975 ulefile which instantiates the variant in the ModuleVariant array vari‐
1976 able when reaching the variant modulefile command declaring this vari‐
1977 ant. For instance the module load foo/1.2 bar=value1 command leads to
1978 the evaluation of foo/1.2 modulefile with bar=value1 variant specifica‐
1979 tion. When reaching the variant bar value1 value2 value3 command in
1980 modulefile during its evaluation, the ModuleVariant(bar) array element
1981 is set to the value1 string.
1982
1983 Once variants are instantiated, modulefile's code could check the vari‐
1984 ant values to adapt the evaluation and define for instance different
1985 module requirements or produce different environment variable setup.
1986
1987 Variants are interpreted in contexts where modulefiles are evaluated.
1988 Variants specified on module designation are ignored by the is-avail or
1989 path sub-commands. On search sub-commands (avail, whatis and paths),
1990 variants are interpreted and trigger the Extra match search process to
1991 filter results.
1992
1993 When modulefile is evaluated a value should be specified for each vari‐
1994 ant this modulefile declares. When reaching the variant modulefile com‐
1995 mand declaring a variant, an error is raised if no value is specified
1996 for this variant and if no default value is declared. Specified variant
1997 value should match a value from the declared accepted value list if
1998 such list is defined otherwise an error is raised. Additionally if a
1999 variant is specified but does not correspond to a variant declared in
2000 modulefile, an error is raised.
2001
2002 When searching for modules with variants specified in search query, the
2003 Extra match search process triggers a specific scan modulefile evalua‐
2004 tion. Variants defined in modulefile are collected during this evalua‐
2005 tion then compared to the variants specified in search query. If there
2006 is a match, module is included in search results otherwise it is with‐
2007 drawn.
2008
2009 When searching for available modules, if one variant is specified mul‐
2010 tiple times, matching modules are those providing all specified variant
2011 values. For instance bar=value1 bar=value2 will return modules defining
2012 a bar variant with value1 and value2 as available values. On a module
2013 selection context, only the last specified value is retained. Which
2014 means on previous example that bar variant is set to value2.
2015
2016 Module variants are reported along the module they are associated to on
2017 list sub-command results. They are also reported on avail sub-command
2018 if specified in search query or added to the element to report in
2019 sub-command output (see --output/-o option).
2020
2021 Variants are reported within curly braces next to module name, each
2022 variant definition separated from the others with a colon character
2023 (e.g., foo/1.2{variant1=value:+variant2}). Boolean variants are re‐
2024 ported with the +name or -name syntaxes on list sub-command or with the
2025 name=on,off syntax on avail sub-command. When a shortcut character is
2026 defined for a variant (see MODULES_VARIANT_SHORTCUT) it is reported
2027 with the <shortcut>value syntax. For instance if % character is defined
2028 as a shortcut for variant1: foo/1.2{%value:+variant2}.
2029
2030 When the JSON output mode is enabled (with --json), variants are re‐
2031 ported under the variants JSON object as name/value pairs. Values of
2032 Boolean variant are set as JSON Boolean. Other values are set as JSON
2033 strings. Variant shortcut and color rendering do not apply on JSON
2034 output.
2035
2036 Extra match search
2037 Extra match search is a mechanism that evaluates available modulefiles
2038 during a module search to find those matching an extra query or to re‐
2039 port additional information. After selecting modulefiles that match the
2040 module name and version specified in search query, these remaining mod‐
2041 ulefiles are evaluated to collect their content.
2042
2043 Extra match search is available on the following module search sub-com‐
2044 mands: avail, whatis and paths.
2045
2046 Extra match search is triggered when:
2047
2048 • Module variants and their available values have to be reported in
2049 avail output (see --output/-o option): extra match search is trig‐
2050 gered to collect variant information
2051
2052 • Module variant is specified in search query: extra match search is
2053 triggered to collect variant information then match them against
2054 variant specified in query
2055
2056 • Extra specifier is specified in search query: extra match search is
2057 triggered to collect commands used in modulefiles then match them
2058 against extra specifier query
2059
2060 If search query does not contain an extra query and if variant informa‐
2061 tion should not be reported, no extra match search is performed. If
2062 search query does not contain any module name and version but contains
2063 an extra query or if variant information should be reported, extra
2064 match search is applied to all available modulefiles.
2065
2066 During this specific evaluation, modulefiles are interpreted in scan
2067 mode. This mode aims to collect the different Tcl modulefile commands
2068 used. Special care should be given when writing modulefiles to ensure
2069 they cope with such evaluation mode.
2070
2071 Modulefiles tagged forbidden are excluded from extra match search eval‐
2072 uation. Thus they are excluded from result when this mechanism is trig‐
2073 gered.
2074
2075 As extra match search implies additional modulefile evaluations, it is
2076 advised to build and use Module cache to improve search speed.
2077
2078 Collections
2079 Collections describe a sequence of module use then module load commands
2080 that are interpreted by modulecmd.tcl to set the user environment as
2081 described by this sequence.
2082
2083 Collections are generated by the save sub-command that dumps the cur‐
2084 rent user environment state in terms of module paths and loaded mod‐
2085 ules. By default collections are saved under the $HOME/.module direc‐
2086 tory.
2087
2088 $ module list
2089 Currently Loaded Modulefiles:
2090 1) foo/1.2 2) bar/2.0 3) qux/3.5
2091 $ module save foo
2092 $ cat $HOME/.module/foo
2093 module use --append /path/to/modulefiles
2094 module load foo
2095 module load bar/2.0
2096 module load qux/3.5
2097
2098 The content of a collection can also be displayed with the saveshow
2099 sub-command. Note that in the above example, bare module name is
2100 recorded for foo modulefile as loaded version is the implicit default.
2101 Loaded version recording can be enforced by enabling
2102 collection_pin_version configuration option.
2103
2104 $ module config collection_pin_version 1
2105 $ module save foo
2106 $ module saveshow foo
2107 -------------------------------------------------------------------
2108 /home/user/.module/foo:
2109
2110 module use --append /path/to/modulefiles
2111 module load foo/1.2
2112 module load bar/2.0
2113 module load qux/3.5
2114
2115 -------------------------------------------------------------------
2116
2117 When a collection is activated, with the restore sub-command, module
2118 paths and loaded modules are unused or unloaded if they are not part or
2119 if they are not ordered the same way as in the collection.
2120
2121 $ module list
2122 Currently Loaded Modulefiles:
2123 1) foo/1.2 2) bar/2.1 3) qux/3.5
2124 $ module restore foo
2125 Unloading qux/3.5
2126 Unloading bar/2.1
2127 Loading bar/2.0
2128 Loading qux/3.5
2129 $ module list
2130 Currently Loaded Modulefiles:
2131 1) foo/1.2 2) bar/2.0 3) qux/3.5
2132
2133 In the above example, second and third module loaded are changed. First
2134 loaded module is not changed or reloaded as it is the same module be‐
2135 tween current environment and collection. As second loaded module was
2136 different, this module and all those loaded afterward are unloaded to
2137 then load the sequence described by collection. As a result, third
2138 loaded module is reloaded, even if is was the same module between cur‐
2139 rent environment and collection.
2140
2141 Existing collections can be listed with savelist sub-command. They can
2142 be deleted with saverm sub-command.
2143
2144 $ module savelist
2145 Named collection list:
2146 1) default 2) foo
2147 $ module saverm default
2148 $ module savelist
2149 Named collection list:
2150 1) foo
2151
2152 When no argument is provided to save, restore, saveshow or saverm
2153 sub-commands, the default collection is assumed.
2154
2155 Collection can also be specified as a full pathname:
2156
2157 $ module save /path/to/collections/bar
2158 $ module saveshow /path/to/collections/bar
2159 -------------------------------------------------------------------
2160 /path/to/collections/bar:
2161
2162 module use --append /path/to/modulefiles
2163 module load foo/1.2
2164 module load bar/2.0
2165 module load qux/3.5
2166
2167 -------------------------------------------------------------------
2168
2169 Initial environment
2170 Initial environment state, which corresponds to modulepaths enabled and
2171 modules loaded during Modules initialization, is referred as the
2172 __init__ collection. This collection is virtual as its content is
2173 stored in the __MODULES_LMINIT and not in a file. It can be displayed
2174 with saveshow and restored with restore sub-command.
2175
2176 $ module saveshow __init__
2177 -------------------------------------------------------------------
2178 initial environment:
2179
2180 module use --append /path/to/modulefiles
2181 module load foo/1.2
2182
2183 -------------------------------------------------------------------
2184
2185 If the default collection does not exist, saveshow and restore sub-com‐
2186 mands assume __init__ collection when no argument provided to them.
2187
2188 $ module list
2189 Currently Loaded Modulefiles:
2190 1) foo/1.2 2) bar/2.1 3) qux/3.5
2191 $ module savelist
2192 Named collection list:
2193 1) foo
2194 $ module restore
2195 Unloading qux/3.5
2196 Unloading bar/2.1
2197
2198 Initial environment state can also be restored with the reset sub-com‐
2199 mand. This sub-command behavior can be changed with reset_target_state
2200 configuration option to choose to just purge loaded modules or to re‐
2201 store a specific collection.
2202
2203 Collection targets
2204 A collection target can be defined for current environment session with
2205 the collection_target configuration option. When set, available collec‐
2206 tions are reduced to those suffixed with target name. Which means
2207 restore, saveshow, savelist and saverm only find collections matching
2208 currently set target.
2209
2210 $ module savelist
2211 Named collection list:
2212 1) foo
2213 $ module config collection_target mytarget
2214 $ module savelist
2215 No named collection (for target "mytarget").
2216 $ module restore foo
2217 ERROR: Collection foo (for target "mytarget") cannot be found
2218
2219 When saving a new collection, generated file is suffixed with currently
2220 set target name.
2221
2222 $ module save bar
2223 $ module savelist
2224 Named collection list (for target "mytarget"):
2225 1) bar
2226 $ ls $HOME/.module
2227 bar.mytarget foo
2228
2229 Collection targets help to distinguish contexts and make collection
2230 reachable only from the context they have been made for. For instance
2231 the same user account may be used to access different OSes or machine
2232 architectures. With a target set, users are ensured to only access col‐
2233 lections built for the context they are currently connected to. See
2234 also MODULES_COLLECTION_TARGET section.
2235
2236 Stash collections
2237 Current user environment can be stashed with stash sub-command. When
2238 this sub-command is called, current module environment is saved in a
2239 stash collection then initial environment is restored.
2240
2241 $ module list
2242 Currently Loaded Modulefiles:
2243 1) foo/1.2 2) qux/4.2
2244 $ module stash
2245 Unloading qux/4.2
2246
2247 Specific sub-commands are available to handle stash collections:
2248 stashpop, stashlist, stashshow, stashrm and stashclear. A stash collec‐
2249 tion is restored with stashpop which also deletes the collection once
2250 restored.
2251
2252 $ module stashlist
2253 Stash collection list (for target "mytarget"):
2254 0) stash-1667669750191
2255 $ module stashpop
2256 Loading qux/4.2
2257 $ module stashlist
2258 No stash collection (for target "mytarget").
2259
2260 Stash collections have same format and are saved in the same location
2261 than other collections. Collection target also applies to stash collec‐
2262 tion. Creation timestamp is saved in stash collection name.
2263
2264 Stash collection can be designated by their full collection name (i.e.,
2265 stash-<creation_timestamp>) or a stash index. Most recent stash collec‐
2266 tion has index 0, 1 is the one before it. When no argument is provided
2267 on stash sub-commands, the latest stash collection is assumed (that is
2268 stash index 0).
2269
2270 $ module stashlist
2271 Stash collection list (for target "mytarget"):
2272 0) stash-1667669750783 1) stash-1667669750253
2273 $ module stashshow 1
2274 -------------------------------------------------------------------
2275 /home/user/.module/stash-1667669750253.mytarget:
2276
2277 module use --append /path/to/modulefiles
2278 module load foo/1.2
2279 module load bar/2.0
2280
2281 -------------------------------------------------------------------
2282
2283 Site-specific configuration
2284 Siteconfig, the site-specific configuration script, is a way to extend
2285 modulecmd.tcl. Siteconfig is a Tcl script. Its location is /etc/envi‐
2286 ronment-modules/siteconfig.tcl.
2287
2288 When modulecmd.tcl is invoked it sources siteconfig script if it ex‐
2289 ists. Any global variable or procedure of modulecmd.tcl can be rede‐
2290 fined in siteconfig.
2291
2292 An additional siteconfig script may be specified through the
2293 extra_siteconfig configuration option. The MODULES_SITECONFIG environ‐
2294 ment variable is defined by config sub-command when setting
2295 extra_siteconfig. If it exists the extra siteconfig is sourced by mod‐
2296 ulecmd.tcl right after main siteconfig script.
2297
2298 Hooks
2299 Siteconfig relies on the ability of the Tcl language to overwrite pre‐
2300 viously defined variables and procedures. Sites may deploy their own
2301 Tcl code in siteconfig to adapt modulecmd.tcl to their specific needs.
2302 The trace Tcl command may especially be used to define hooks that are
2303 run when entering or leaving a given procedure, or when a variable is
2304 read or written. See trace(n) man page for detailed information. The
2305 following example setup a procedure that is executed before each mod‐
2306 ulefile evaluation:
2307
2308 proc beforeEval {cmdstring code result op} {
2309 # code to run right before each modulefile evaluation
2310 }
2311 trace add execution execute-modulefile enter beforeEval
2312
2313 Another possibility is to override the definition of an existing proce‐
2314 dure by first renaming its original version then creating a new proce‐
2315 dure that will add specific code and rely on the renamed original pro‐
2316 cedure for the rest. See rename(n) man page for details. As an example,
2317 the following code adds a new query option to the module-info module‐
2318 file command:
2319
2320 rename module-info __module-info
2321 proc module-info {what {more {}}} {
2322 switch -- $what {
2323 platform { return myhost-$::tcl_platform(machine) }
2324 default { return [__module-info $what $more] }
2325 }
2326 }
2327
2328 Siteconfig hook variables
2329 Some Tcl variables can be defined in siteconfig script with special
2330 hook meaning. The following variables are recognized:
2331
2332 modulefile_extra_vars
2333 List of variable names and associated values to setup in module‐
2334 file evaluation context. These variables can be accessed when
2335 modulefile is executed. In case code in a modulefile changes the
2336 value of such variable, its value is reset to the one defined in
2337 modulefile_extra_vars prior the evaluation of the next module‐
2338 file.
2339
2340 set modulefile_extra_vars {myvar 1 othervar {some text}}
2341
2342 In the above siteconfig example, modulefile_extra_vars sets the
2343 myvar and othervar variables in the modulefile evaluation con‐
2344 text with respectively 1 and some text as value.
2345
2346 modulefile_extra_cmds
2347 List of command and associated local procedure to setup in mod‐
2348 ulefile evaluation context. These commands can be called from
2349 the modulefile to execute associated procedure. In case a mod‐
2350 ulefile changes the definition of such command, its definition
2351 is bound again on the procedure defined in modulefile_extra_cmds
2352 prior the evaluation of the next modulefile.
2353
2354 proc mycmd {} {
2355 # Tcl code
2356 }
2357 proc anotherproc {args} {
2358 # Tcl code
2359 }
2360 set modulefile_extra_cmds {mycmd mycmd othercmd anotherproc}
2361
2362 In the above siteconfig example, modulefile_extra_cmds sets the
2363 mycmd and othercmd commands in the modulefile evaluation context
2364 and bind them respectively to the mycmd and anotherproc proce‐
2365 dures defined in siteconfig script.
2366
2367 modulerc_extra_vars
2368 List of variable names and associated values to setup in mod‐
2369 ulerc evaluation context. These variables can be accessed when
2370 modulerc is executed. In case code in a modulerc changes the
2371 value of such variable, its value is reset to the one defined in
2372 modulerc_extra_vars prior the evaluation of the next modulerc.
2373
2374 set modulerc_extra_vars {myvar 1 othervar {some text}}
2375
2376 In the above siteconfig example, modulerc_extra_vars sets the
2377 myvar and othervar variables in the modulerc evaluation context
2378 with respectively 1 and some text as value.
2379
2380 modulerc_extra_cmds
2381 List of command and associated local procedure to setup in mod‐
2382 ulerc evaluation context. These commands can be called from the
2383 modulerc to execute associated procedure. In case a modulerc
2384 changes the definition of such command, its definition is bound
2385 again on the procedure defined in modulerc_extra_cmds prior the
2386 evaluation of the next modulerc.
2387
2388 proc mycmd {} {
2389 # Tcl code
2390 }
2391 proc anotherproc {args} {
2392 # Tcl code
2393 }
2394 set modulerc_extra_cmds {mycmd mycmd othercmd anotherproc}
2395
2396 In the above siteconfig example, modulerc_extra_cmds sets the
2397 mycmd and othercmd commands in the modulerc evaluation context
2398 and bind them respectively to the mycmd and anotherproc proce‐
2399 dures defined in siteconfig script.
2400
2401 Module cache
2402 To improve module search efficiency, a module cache can be setup in
2403 each modulepath. A module cache is represented by a .modulecache file
2404 stored at the root of modulepath directory. This file aggregates con‐
2405 tents of all valid modulercs and modulefiles and issue description of
2406 all non-modulefiles stored in modulepath directory.
2407
2408 When cache file is available, a module search analyzes this file rather
2409 walking through the content of modulepath directory to check if files
2410 are modulefiles or not. Cache file reduces module search processing
2411 time especially when hundreds of modulefiles are available and if these
2412 files are located on busy storage systems. Having one file to read per
2413 modulepath rather walking through a whole directory content extremely
2414 reduces the number of required I/O operations.
2415
2416 When modulefiles or directories in the modulepath are not accessible
2417 for everyone, a limited access indication is recorded in cache file
2418 rather content of these modulefiles and content of these directories.
2419 When cache file containing such indication is processed, the limited
2420 access modulefiles are tested to check if they are available to the
2421 current running user. Limited access directories are walked down to
2422 find all available modulefiles and modulercs.
2423
2424 Cache files are generated with cachebuild sub-command. This command has
2425 to be run by someone who owns write access in modulepath directory to
2426 create cache file.
2427
2428 Cache files are used any time a module search occurs in modulepaths.
2429 They are analyzed for instance during avail, load, display or whatis
2430 sub-commands.
2431
2432 Cache files are removed with cacheclear sub-command. This command has
2433 to be run by someone who own write access in modulepath directory to
2434 effectively delete cache file.
2435
2437 The module command exits with 0 if its execution succeed. Otherwise 1
2438 is returned.
2439
2441 __MODULES_AUTOINIT_INPROGRESS
2442 If set to 1, the autoinit sub-command process is skipped.
2443
2444 This environment variable is set to 1 by the autoinit sub-com‐
2445 mand after checking it is not set. It ensures no nested initial‐
2446 ization of Modules occur. At the end of the processing of the
2447 autoinit sub-command, __MODULES_AUTOINIT_INPROGRESS is unset.
2448
2449 __MODULES_LMALTNAME
2450 A colon separated list of the alternative names set through
2451 module-version and module-alias statements corresponding to all
2452 loaded modulefiles. Each element in this list starts by the name
2453 of the loaded modulefile followed by all alternative names re‐
2454 solving to it. The loaded modulefile and its alternative names
2455 are separated by the ampersand character.
2456
2457 Each alternative name stored in __MODULES_LMALTNAME is prefixed
2458 by the al| string if it corresponds to a module alias or pre‐
2459 fixed by the as| string if it corresponds to an automatic ver‐
2460 sion symbol. These prefixes help to distinguish the different
2461 kind of alternative name.
2462
2463 This environment variable is intended for module command inter‐
2464 nal use to get knowledge of the alternative names matching
2465 loaded modulefiles in order to keep environment consistent when
2466 conflicts or pre-requirements are set over these alternative
2467 designations. It also helps to find a match after modulefiles
2468 being loaded when unload, is-loaded or info-loaded actions are
2469 run over these names.
2470
2471 Starting version 4.7 of Modules, __MODULES_LMALTNAME is also
2472 used on list sub-command to report the symbolic versions associ‐
2473 ated with the loaded modules.
2474
2475 __MODULES_LMCONFLICT
2476 A colon separated list of the conflict statements defined by all
2477 loaded modulefiles. Each element in this list starts by the name
2478 of the loaded modulefile declaring the conflict followed by the
2479 name of all modulefiles it declares a conflict with. These
2480 loaded modulefiles and conflicting modulefile names are sepa‐
2481 rated by the ampersand character.
2482
2483 This environment variable is intended for module command inter‐
2484 nal use to get knowledge of the conflicts declared by the loaded
2485 modulefiles in order to keep environment consistent when a con‐
2486 flicting module is asked for load afterward.
2487
2488 __MODULES_LMINIT
2489 A colon separated list describing the modulepaths that have been
2490 enabled and the modulefiles that have been loaded with their
2491 tags during Modules initialization. Each element in this list
2492 corresponds to a collection definition line.
2493
2494 This environment variable is intended for module command inter‐
2495 nal use to get knowledge of the initial loaded state after ini‐
2496 tialization.
2497
2498 This initial environment state can then be restored with reset
2499 sub-command. It can also be restored with restore sub-command
2500 when __init__ collection name is specified or when no collection
2501 name is specified and no default collection exists.
2502
2503 The content of the initial environment can be displayed with
2504 saveshow sub-command when __init__ collection name is specified
2505 or when no collection name is specified and no default collec‐
2506 tion exists.
2507
2508 __MODULES_LMPREREQ
2509 A colon separated list of the prereq statements defined by all
2510 loaded modulefiles. Each element in this list starts by the name
2511 of the loaded modulefile declaring the pre-requirement followed
2512 by the name of all modulefiles it declares a prereq with. These
2513 loaded modulefiles and pre-required modulefile names are sepa‐
2514 rated by the ampersand character. When a prereq statement is
2515 composed of multiple modulefiles, these modulefile names are
2516 separated by the pipe character.
2517
2518 This environment variable is intended for module command inter‐
2519 nal use to get knowledge of the pre-requirement declared by the
2520 loaded modulefiles in order to keep environment consistent when
2521 a pre-required module is asked for unload afterward.
2522
2523 __MODULES_LMREFRESH
2524 A colon separated list of the loaded modules that are qualified
2525 for refresh evaluation. Loaded modules listed in this variable
2526 are those defining volatile environment changes like shell com‐
2527 pletion, alias and function.
2528
2529 __MODULES_LMSOURCESH
2530 A colon separated list of the source-sh statements defined by
2531 all loaded modulefiles. Each element in this list starts by the
2532 name of the loaded modulefile declaring the environment changes
2533 made by the evaluation of source-sh scripts. This name is fol‐
2534 lowed by each source-sh statement call and corresponding result
2535 achieved in modulefile. The loaded modulefile name and each
2536 source-sh statement description are separated by the ampersand
2537 character. The source-sh statement call and each resulting mod‐
2538 ulefile command (corresponding to the environment changes done
2539 by sourced script) are separated by the pipe character.
2540
2541 This environment variable is intended for module command inter‐
2542 nal use to get knowledge of the modulefile commands applied for
2543 each source-sh command when loading the modulefile. In order to
2544 reverse these modulefile commands when modulefile is unloaded to
2545 undo the environment changes.
2546
2547 __MODULES_LMEXTRATAG
2548 A colon separated list of the tags corresponding to all loaded
2549 modulefiles that have been set through the --tag option. Each
2550 element in this list starts by the name of the loaded modulefile
2551 followed by all explicitly set tags applying to it. The loaded
2552 modulefile and its tags are separated by the ampersand charac‐
2553 ter.
2554
2555 This environment variable is intended for module command inter‐
2556 nal use to distinguish from all tags those that have been
2557 specifically set with --tag option.
2558
2559 __MODULES_LMTAG
2560 A colon separated list of the tags corresponding to all loaded
2561 modulefiles that have been set through module-tag statements or
2562 from other modulefile statements like module-forbid (that may
2563 apply the nearly-forbidden tag in specific situation) (see
2564 Module tags section). Each element in this list starts by the
2565 name of the loaded modulefile followed by all tags applying to
2566 it. The loaded modulefile and its tags are separated by the am‐
2567 persand character.
2568
2569 This environment variable is intended for module command inter‐
2570 nal use to get knowledge of the tags applying to loaded module‐
2571 files in order to report these tags on list sub-command output
2572 or to apply specific behavior when unloading modulefile.
2573
2574 __MODULES_LMVARIANT
2575 A colon separated list of the variant instantiated through
2576 variant statements by all loaded modulefiles (see Module vari‐
2577 ants section). Each element in this list starts by the name of
2578 the loaded modulefile followed by all the variant definitions
2579 set during the load of this module. The loaded modulefile and
2580 each of its variant definition are separated by the ampersand
2581 character. Each variant definition starts with the variant name,
2582 followed by the variant value set, then a flag to know if vari‐
2583 ant is of the Boolean type and last element in this definition
2584 is a flag to know if the chosen value is the default one for
2585 this variant and if it has been automatically set or not. These
2586 four elements composing the variant definition are separated by
2587 the pipe character.
2588
2589 This environment variable is intended for module command inter‐
2590 nal use to get knowledge of the variant value defined by the
2591 loaded modulefiles in order to keep environment consistent when
2592 requirements are set over a specific variant value or just to
2593 report these variant values when listing loaded modules.
2594
2595 __MODULES_PUSHENV_<VAR>
2596 Stack of saved values for <VAR> environment variable. A
2597 colon-separated list containing pairs of elements. A pair is
2598 formed by a loaded module name followed by the value set to
2599 <VAR> in this module with pushenv command. An ampersand charac‐
2600 ter separates the two parts of the pair.
2601
2602 First element in list corresponds to the lastly set value of
2603 <VAR>. If a value were set to <VAR> prior the first evaluated
2604 pushenv command, this value is associated to an empty module
2605 name to record it as a pair element in __MODULES_PUSHENV_<VAR>.
2606
2607 __MODULES_QUAR_<VAR>
2608 Value of environment variable <VAR> passed to modulecmd.tcl in
2609 order to restore <VAR> to this value once started.
2610
2611 __MODULES_QUARANTINE_SET
2612 If set to 1, restore the environment variables set on hold by
2613 the quarantine mechanism when starting modulecmd.tcl script.
2614 This variable is automatically defined by Modules shell initial‐
2615 ization scripts or module shell function when they apply the
2616 quarantine mechanism. (see MODULES_QUARANTINE_SUPPORT).
2617
2618 __MODULES_SHARE_<VAR>
2619 Reference counter variable for path-like variable <VAR>. A colon
2620 separated list containing pairs of elements. A pair is formed by
2621 a path element followed its usage counter which represents the
2622 number of times this path has been enabled in variable <VAR>. A
2623 colon separates the two parts of the pair.
2624
2625 An element of a path-like variable is added to the reference
2626 counter variable as soon as it is added more than one time. When
2627 an element of a path-like variable is not found in the reference
2628 counter variable, it means this element has only be added once
2629 to the path-like variable.
2630
2631 When an empty string is added as an element in the path-like
2632 variable, it is added to the reference counter variable even if
2633 added only once to distinguish between an empty path-like vari‐
2634 able and a path-like variable containing an empty string as sin‐
2635 gle element.
2636
2637 _LMFILES_
2638 A colon separated list of the full pathname for all loaded mod‐
2639 ulefiles.
2640
2641 This environment variable is generated by module command and
2642 should not be modified externally.
2643
2644 LOADEDMODULES
2645 A colon separated list of all loaded modulefiles.
2646
2647 This environment variable is generated by module command and
2648 should not be modified externally.
2649
2650 MODULECONTACT
2651 Email address to contact in case any issue occurs during the in‐
2652 terpretation of modulefiles.
2653
2654 This environment variable value supersedes the default value set
2655 in the contact configuration option. It can be defined with the
2656 config sub-command.
2657
2658 MODULEPATH
2659 The path that the module command searches when looking for mod‐
2660 ulefiles. Typically, it is set to the main modulefiles direc‐
2661 tory, /usr/share/Modules/modulefiles, by the initialization
2662 script. MODULEPATH can be set using module use or by the module
2663 initialization script to search group or personal modulefile di‐
2664 rectories before or after the main modulefile directory.
2665
2666 Path elements registered in the MODULEPATH environment variable
2667 may contain reference to environment variables which are con‐
2668 verted to their corresponding value by module command each time
2669 it looks at the MODULEPATH value. If an environment variable re‐
2670 ferred in a path element is not defined, its reference is con‐
2671 verted to an empty string.
2672
2673 MODULERCFILE
2674 The location of a global run-command file containing modulefile
2675 specific setup. See Modulecmd startup section for detailed in‐
2676 formation.
2677
2678 This environment variable value supersedes the default value set
2679 in the rcfile configuration option. It can be defined with the
2680 config sub-command.
2681
2682 MODULES_ADVANCED_VERSION_SPEC
2683 If set to 1, enable advanced module version specifiers (see
2684 Advanced module version specifiers section). If set to 0, dis‐
2685 able advanced module version specifiers.
2686
2687 This environment variable value supersedes the default value set
2688 in the advanced_version_spec configuration option. It can be de‐
2689 fined with the config sub-command.
2690
2691 MODULES_AUTO_HANDLING
2692 If set to 1, enable automated module handling mode. If set to 0
2693 disable automated module handling mode. Other values are ig‐
2694 nored.
2695
2696 Automated module handling mode consists in additional actions
2697 triggered when loading or unloading a modulefile to satisfy the
2698 constraints it declares. When loading a modulefile, following
2699 actions are triggered:
2700
2701 • Requirement Load: load of the modulefiles declared as a prereq
2702 of the loading modulefile.
2703
2704 • Dependent Reload: reload of the modulefiles declaring a prereq
2705 onto loaded modulefile or declaring a prereq onto a modulefile
2706 part of this reloading batch.
2707
2708 When unloading a modulefile, following actions are triggered:
2709
2710 • Dependent Unload: unload of the modulefiles declaring a
2711 non-optional prereq onto unloaded modulefile or declaring a
2712 non-optional prereq onto a modulefile part of this unloading
2713 batch. A prereq modulefile is considered optional if the
2714 prereq definition order is made of multiple modulefiles and at
2715 least one alternative modulefile is loaded.
2716
2717 • Useless Requirement Unload: unload of the prereq modulefiles
2718 that have been automatically loaded for either the unloaded
2719 modulefile, an unloaded dependent modulefile or a modulefile
2720 part of this useless requirement unloading batch. Modulefiles
2721 are added to this unloading batch only if they are not re‐
2722 quired by any other loaded modulefiles and if they are not
2723 tagged keep-loaded.
2724
2725 • Dependent Reload: reload of the modulefiles declaring a
2726 conflict or an optional prereq onto either the unloaded mod‐
2727 ulefile, an unloaded dependent or an unloaded useless require‐
2728 ment or declaring a prereq onto a modulefile part of this
2729 reloading batch.
2730
2731 In case a loaded modulefile has some of its declared constraints
2732 unsatisfied (pre-required modulefile not loaded or conflicting
2733 modulefile loaded for instance), this loaded modulefile is ex‐
2734 cluded from the automatic reload actions described above.
2735
2736 For the specific case of the switch sub-command, where a module‐
2737 file is unloaded to then load another modulefile. Dependent mod‐
2738 ulefiles to Unload are merged into the Dependent modulefiles to
2739 Reload that are reloaded after the load of the switched-to mod‐
2740 ulefile.
2741
2742 This environment variable value supersedes the default value set
2743 on the auto_handling configuration option. It can be defined
2744 with the config sub-command. The --auto and --no-auto command
2745 line switches override this environment variable.
2746
2747 MODULES_AVAIL_INDEPTH
2748 If set to 1, enable in depth search results for avail sub-com‐
2749 mand. If set to 0 disable avail sub-command in depth mode. Other
2750 values are ignored.
2751
2752 When in depth mode is enabled, modulefiles and directories con‐
2753 tained in directories matching search query are also included in
2754 search results. When disabled these modulefiles and directories
2755 contained in matching directories are excluded.
2756
2757 This environment variable value supersedes the default value set
2758 in the avail_indepth configuration option. It can be defined
2759 with the config sub-command. The --indepth and --no-indepth com‐
2760 mand line switches override this environment variable.
2761
2762 MODULES_AVAIL_OUTPUT
2763 A colon separated list of the elements to report in addition to
2764 module names on avail sub-command regular output mode.
2765
2766 Accepted elements that can be set in value list are:
2767
2768 • alias: module aliases.
2769
2770 • dirwsym: directories associated with symbolic versions.
2771
2772 • indesym: symbolic versions reported independently from the
2773 module or directory they are attached to.
2774
2775 • key: legend appended at the end of the output to explain it.
2776
2777 • modulepath: modulepath names set as header prior the list of
2778 available modules found in them.
2779
2780 • sym: symbolic versions associated with available modules.
2781
2782 • tag: tags associated with available modules.
2783
2784 • variant: variants and their possible values associated with
2785 available modules.
2786
2787 • variantifspec: like variant but only if a variant has been
2788 specified in search query.
2789
2790 The order of the elements in the list does not matter. Module
2791 names are the only content reported when LIST is set to an empty
2792 value.
2793
2794 In case the modulepath element is missing from value list, the
2795 available modules from global/user rc and all enabled mod‐
2796 ulepaths are reported as a single list.
2797
2798 When indesym element is set, dirwsym and sym elements are dis‐
2799 abled.
2800
2801 This environment variable value supersedes the default value set
2802 in the avail_output configuration option. It can be defined with
2803 the config sub-command. The --output/-o command line switches
2804 override this environment variable.
2805
2806 MODULES_AVAIL_TERSE_OUTPUT
2807 A colon separated list of the elements to report in addition to
2808 module names on avail sub-command terse output mode.
2809
2810 See MODULES_AVAIL_OUTPUT to get the accepted elements that can
2811 be set in value list.
2812
2813 The order of the elements in the list does not matter. Module
2814 names are the only content reported when LIST is set to an empty
2815 value.
2816
2817 This environment variable value supersedes the default value set
2818 in the avail_terse_output configuration option. It can be de‐
2819 fined with the config sub-command. The --output/-o command line
2820 switches override this environment variable.
2821
2822 MODULES_CACHE_BUFFER_BYTES
2823 Size of the buffer used when reading or writing cache files. Ac‐
2824 cepted values are integers comprised between 4096 and 1000000.
2825
2826 MODULES_CACHE_EXPIRY_SECS
2827 Number of seconds a cache file is considered valid after being
2828 generated. For example, if set to 3600 it means a cache file ex‐
2829 pires one hour after being generated and is then ignored.
2830
2831 When set to 0 cache file never expires. Accepted values are in‐
2832 tegers comprised between 0 (cache files never expire) and
2833 31536000 (equivalent to one year duration).
2834
2835 MODULES_CMD
2836 The location of the active module command script.
2837
2838 This environment variable is generated by module command and
2839 should not be modified externally.
2840
2841 MODULES_COLLECTION_PIN_VERSION
2842 If set to 1, register exact version number of modulefiles when
2843 saving a collection. Otherwise modulefile version number is
2844 omitted if it corresponds to the explicitly set default version
2845 and also to the implicit default when the configuration option
2846 implicit_default is enabled.
2847
2848 This environment variable value supersedes the default value set
2849 in the collection_pin_version configuration option. It can be
2850 defined with the config sub-command.
2851
2852 MODULES_COLLECTION_PIN_TAG
2853 If set to 1, register all tags applying to modulefiles when sav‐
2854 ing a collection. Otherwise only the extra tags set through the
2855 --tag option and tags resulting from specific module states
2856 (like auto-loaded and keep-loaded tags) are recorded in collec‐
2857 tion. Note that the nearly-forbidden tag due to its temporal
2858 meaning is not saved in collection even when this configuration
2859 option is enabled.
2860
2861 This environment variable value supersedes the default value set
2862 in the collection_pin_tag configuration option. It can be de‐
2863 fined with the config sub-command.
2864
2865 MODULES_COLLECTION_TARGET
2866 The collection target that determines what collections are valid
2867 thus reachable on the current system.
2868
2869 Collection directory may sometimes be shared on multiple ma‐
2870 chines which may use different modules setup. For instance mod‐
2871 ules users may access with the same HOME directory multiple sys‐
2872 tems using different OS versions. When it happens a collection
2873 made on machine 1 may be erroneous on machine 2.
2874
2875 When a target is set, only the collections made for that target
2876 are available to the restore, savelist, saveshow, saverm, stash,
2877 stashpop, stashlist, stashshow, and stashrm sub-commands. Saving
2878 a collection registers the target footprint by suffixing the
2879 collection filename with .$MODULES_COLLECTION_TARGET. The col‐
2880 lection target is not involved when collection is specified as
2881 file path on the saveshow, restore and save sub-commands.
2882
2883 For example, the MODULES_COLLECTION_TARGET variable may be set
2884 with results from commands like lsb_release, hostname, dnsdo‐
2885 mainname, etc.
2886
2887 This environment variable value supersedes the default value set
2888 in the collection_target configuration option. It can be defined
2889 with the config sub-command.
2890
2891 MODULES_COLOR
2892 Defines if output should be colored or not. Accepted values are
2893 never, auto and always.
2894
2895 When color mode is set to auto, output is colored only if the
2896 standard error output channel is attached to a terminal.
2897
2898 This environment variable value supersedes the default value set
2899 in the color configuration option. It can be defined with the
2900 config sub-command. The --color command line switch overrides
2901 this environment variable.
2902
2903 NO_COLOR, CLICOLOR and CLICOLOR_FORCE environment variables are
2904 also honored to define color mode. The never mode is set if
2905 NO_COLOR is defined (regardless of its value) or if CLICOLOR
2906 equals to 0. If CLICOLOR is set to another value, it corresponds
2907 to the auto mode. The always mode is set if CLICOLOR_FORCE is
2908 set to a value different than 0. NO_COLOR variable prevails
2909 over CLICOLOR and CLICOLOR_FORCE. Color mode set with these
2910 three variables is superseded by mode set with MODULES_COLOR en‐
2911 vironment variable or with --color command line switch..
2912
2913 MODULES_COLORS
2914 Specifies the colors and other attributes used to highlight var‐
2915 ious parts of the output. Its value is a colon-separated list of
2916 output items associated to a Select Graphic Rendition (SGR)
2917 code. It follows the same syntax than LS_COLORS.
2918
2919 Output items are designated by keys. Items able to be colorized
2920 are: highlighted element (hi), debug information (db), trace in‐
2921 formation (tr), tag separator (se); Error (er), warning (wa),
2922 module error (me) and info (in) message prefixes; Modulepath
2923 (mp), directory (di), module alias (al), module variant (va),
2924 module symbolic version (sy), module default version (de) and
2925 modulefile command (cm).
2926
2927 Module tags can also be colorized. The key to set in the color
2928 palette to get a graphical rendering of a tag is the tag name or
2929 the tag abbreviation if one is defined for tag. The SGR code ap‐
2930 plied to a tag name is ignored if an abbreviation is set for
2931 this tag thus the SGR code should be defined for this abbrevia‐
2932 tion to get a graphical rendering. Each basic tag has by default
2933 a key set in the color palette, based on its abbreviated string:
2934 auto-loaded (aL), forbidden (F), hidden and hidden-loaded (H),
2935 loaded (L), nearly-forbidden (nF), sticky (S), super-sticky (sS)
2936 and keep-loaded (kL).
2937
2938 See the Select Graphic Rendition (SGR) section in the documenta‐
2939 tion of the text terminal that is used for permitted values and
2940 their meaning as character attributes. These substring values
2941 are integers in decimal representation and can be concatenated
2942 with semicolons. Modules takes care of assembling the result
2943 into a complete SGR sequence (\33[...m). Common values to con‐
2944 catenate include 1 for bold, 4 for underline, 30 to 37 for fore‐
2945 ground colors and 90 to 97 for 16-color mode foreground colors.
2946 See also
2947 https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters
2948 for a complete SGR code reference.
2949
2950 No graphical rendition will be applied to an output item that
2951 could normally be colored but which is not defined in the color
2952 set. Thus if MODULES_COLORS is defined empty, no output will be
2953 colored at all.
2954
2955 This environment variable value supersedes the default value set
2956 in the colors configuration option. It can be defined with the
2957 config sub-command.
2958
2959 MODULES_EDITOR
2960 Text editor command name or path for use to open modulefile
2961 through the edit sub-command.
2962
2963 This environment variable value supersedes the default value set
2964 in the editor configuration option. It can be defined with the
2965 config sub-command.
2966
2967 Text editor could also be defined through the VISUAL or EDITOR
2968 environment variables. These environment variables are overrid‐
2969 den by MODULES_EDITOR.
2970
2971 MODULES_EXTENDED_DEFAULT
2972 If set to 1, a specified module version is matched against
2973 starting portion of existing module versions, where portion is a
2974 substring separated from the rest of the version string by a .
2975 character. For example specified modules mod/1 and mod/1.2 will
2976 match existing modulefile mod/1.2.3.
2977
2978 In case multiple modulefiles match the specified module version
2979 and a single module has to be selected, the explicitly set de‐
2980 fault version is returned if it is part of matching modulefiles.
2981 Otherwise the implicit default among matching modulefiles is re‐
2982 turned if defined (see MODULES_IMPLICIT_DEFAULT section)
2983
2984 This environment variable value supersedes the default value set
2985 in the extended_default configuration option. It can be defined
2986 with the config sub-command.
2987
2988 MODULES_FAMILY_<NAME>
2989 Module name minus version that provides for the name family in
2990 currently loaded environment. This environment variable is de‐
2991 fined through the use of the family modulefile command.
2992
2993 For instance if loading modulefile foo/1.0 defines being member
2994 of the bar family, the MODULES_FAMILY_BAR will be set to the foo
2995 value.
2996
2997 This environment variable is generated by module command and
2998 should not be modified externally.
2999
3000 MODULES_ICASE
3001 When module specification are passed as argument to module
3002 sub-commands or modulefile Tcl commands, defines the case sensi‐
3003 tiveness to apply to match them. When MODULES_ICASE is set to
3004 never, a case sensitive match is applied in any cases. When set
3005 to search, a case insensitive match is applied to the avail,
3006 list, whatis, paths and savelist sub-commands. When set to al‐
3007 ways, a case insensitive match is also applied to the other mod‐
3008 ule sub-commands and modulefile Tcl commands for the module
3009 specification they receive as argument.
3010
3011 This environment variable value supersedes the default value set
3012 in the icase configuration option. It can be defined with the
3013 config sub-command. The --icase/-i command line switches, which
3014 correspond to the always mode, override this environment vari‐
3015 able.
3016
3017 MODULES_IGNORE_CACHE
3018 Ignore (if set to 1) or not (if set to 0) module cache.
3019
3020 This environment variable value supersedes the default value set
3021 in the ignore_cache configuration option. It can be defined with
3022 the config sub-command. The --ignore-cache command line switch
3023 overrides this environment variable.
3024
3025 MODULES_IGNORE_USER_RC
3026 Skip evaluation (if set to 1) or not (if set to 0) of user-spe‐
3027 cific module rc file ($HOME/.modulerc).
3028
3029 This environment variable value supersedes the default value set
3030 in the ignore_user_rc configuration option. It can be defined
3031 with the config sub-command. The --ignore-user-rc command line
3032 switch overrides this environment variable.
3033
3034 MODULES_IMPLICIT_DEFAULT
3035 Defines (if set to 1) or not (if set to 0) an implicit default
3036 version for modules without a default version explicitly defined
3037 (see Locating Modulefiles section in the modulefile man page).
3038
3039 Without either an explicit or implicit default version defined a
3040 module must be fully qualified (version should be specified in
3041 addition to its name) to get:
3042
3043 • targeted by module load, switch, display, help, test and path
3044 sub-commands.
3045
3046 • restored from a collection, unless already loaded in collec‐
3047 tion-specified order.
3048
3049 • automatically loaded by automated module handling mechanisms
3050 (see MODULES_AUTO_HANDLING section) when declared as module
3051 requirement, with prereq or module load modulefile commands.
3052
3053 An error is returned in the above situations if either no ex‐
3054 plicit or implicit default version is defined.
3055
3056 This environment variable value supersedes the default value set
3057 in the implicit_default configuration option. It can be defined
3058 with the config sub-command. This environment variable is ig‐
3059 nored if implicit_default has been declared locked in
3060 locked_configs configuration option.
3061
3062 MODULES_IMPLICIT_REQUIREMENT
3063 Defines (if set to 1) or not (if set to 0) an implicit prereq or
3064 conflict requirement onto modules specified respectively on
3065 module load or module unload commands in modulefile. When en‐
3066 abled an implicit conflict requirement onto switched-off module
3067 and a prereq requirement onto switched-on module are also de‐
3068 fined for module switch commands used in modulefile.
3069
3070 This environment variable value supersedes the default value set
3071 in the implicit_requirement configuration option. It can be de‐
3072 fined with the config sub-command. The --not-req option, applied
3073 to a module command in a modulefile, overrides this environment
3074 variable.
3075
3076 MODULES_LIST_OUTPUT
3077 A colon separated list of the elements to report in addition to
3078 module names on list sub-command regular output mode.
3079
3080 Accepted elements that can be set in value list are:
3081
3082 • header: sentence to introduce the list of loaded modules or to
3083 state that no modules are loaded currently.
3084
3085 • idx: index position of each loaded module.
3086
3087 • key: legend appended at the end of the output to explain it.
3088
3089 • variant: variant values selected for loaded modules.
3090
3091 • sym: symbolic versions associated with loaded modules.
3092
3093 • tag: tags associated with loaded modules.
3094
3095 The order of the elements in the list does not matter. Module
3096 names are the only content reported when LIST is set to an empty
3097 value.
3098
3099 This environment variable value supersedes the default value set
3100 in the list_output configuration option. It can be defined with
3101 the config sub-command. The --output/-o command line switches
3102 override this environment variable.
3103
3104 MODULES_LIST_TERSE_OUTPUT
3105 A colon separated list of the elements to report in addition to
3106 module names on list sub-command terse output mode.
3107
3108 See MODULES_LIST_OUTPUT to get the accepted elements that can be
3109 set in value list.
3110
3111 The order of the elements in the list does not matter. Module
3112 names are the only content reported when LIST is set to an empty
3113 value.
3114
3115 This environment variable value supersedes the default value set
3116 in the list_terse_output configuration option. It can be defined
3117 with the config sub-command. The --output/-o command line
3118 switches override this environment variable.
3119
3120 MODULES_MCOOKIE_CHECK
3121 If set to eval, the Modules magic cookie (i.e., #%Module file
3122 signature) is only checked to determine if a file is a module‐
3123 file when evaluating these files. If set to always, the Modules
3124 magic cookie is also checked when searching for modules.
3125
3126 The eval mode is made to significantly reduce file checks when
3127 walking through modulepaths to search for modulefiles. Special
3128 care should be given to the content of modulepaths when this
3129 eval mode is set as the following kind of files are included in
3130 search results:
3131
3132 • modulefiles with a magic cookie requiring a higher version of
3133 modulecmd.tcl
3134
3135 • files not beginning with the magic cookie #%Module
3136
3137 • read-protected files
3138
3139 When a module cache file is available for a given modulepath,
3140 eval mode is not applied as cache content is generated in always
3141 mode.
3142
3143 This environment variable value supersedes the default value set
3144 in the mcookie_check configuration option. It can be defined
3145 with the config sub-command.
3146
3147 MODULES_MCOOKIE_VERSION_CHECK
3148 If set to 1, the version set in the Modules magic cookie in mod‐
3149 ulefile is checked against the current version of modulecmd.tcl
3150 to determine if the modulefile can be evaluated.
3151
3152 When a module cache file is available for a given modulepath,
3153 version check is considered enabled as cache content is gener‐
3154 ated in this mode.
3155
3156 This environment variable value supersedes the default value set
3157 in the mcookie_version_check configuration option. It can be de‐
3158 fined with the config sub-command.
3159
3160 MODULES_ML
3161 If set to 1, define ml command when initializing Modules (see
3162 Package Initialization section). If set to 0, ml command is not
3163 defined.
3164
3165 This environment variable value supersedes the default value set
3166 in the ml configuration option. It can be defined with the
3167 config sub-command.
3168
3169 To enable or disable ml command, MODULES_ML should be set prior
3170 Modules initialization or the ml configuration option should be
3171 set in the initrc configuration file.
3172
3173 MODULES_NEARLY_FORBIDDEN_DAYS
3174 Number of days a module is considered nearly forbidden prior
3175 reaching its expiry date set by module-forbid modulefile com‐
3176 mand. When a nearly forbidden module is evaluated a warning mes‐
3177 sage is issued to inform module will soon be forbidden. If set
3178 to 0, modules will never be considered nearly forbidden. Ac‐
3179 cepted values are integers comprised between 0 and 365.
3180
3181 This environment variable value supersedes the default value set
3182 in the nearly_forbidden_days configuration option. It can be de‐
3183 fined with the config sub-command.
3184
3185 MODULES_PAGER
3186 Text viewer for use to paginate message output if error output
3187 stream is attached to a terminal. The value of this variable is
3188 composed of a pager command name or path eventually followed by
3189 command-line options.
3190
3191 This environment variable value supersedes the default value set
3192 in the pager configuration option. It can be defined with the
3193 config sub-command.
3194
3195 If MODULES_PAGER variable is set to an empty string or to the
3196 value cat, pager will not be launched.
3197
3198 MODULES_PROTECTED_ENVVARS
3199 A colon separated list of environment variable names that should
3200 not be modified by any modulefile command.
3201
3202 Prevents modifications by append-path, prepend-path,
3203 remove-path, setenv and unsetenv. When these modulefile commands
3204 attempt to modify a protected environment variable, a warning
3205 message is emitted and modification is ignored.
3206
3207 This environment variable value supersedes the default value set
3208 in the protected_envvars configuration option. It can be defined
3209 with the config sub-command.
3210
3211 MODULES_QUARANTINE_SUPPORT
3212 If set to 1, produces the shell code for quarantine mechanism
3213 when the autoinit sub-command generates the module shell func‐
3214 tion.
3215
3216 The generated shell code for quarantine mechanism indirectly
3217 passes the environment variable defined in
3218 MODULES_RUN_QUARANTINE to the modulecmd.tcl script to protect
3219 its run-time environment from side-effect coming from the cur‐
3220 rent definition of these variables.
3221
3222 To enable quarantine support, MODULES_QUARANTINE_SUPPORT should
3223 be set to 1 prior Modules initialization or the
3224 quarantine_support configuration should be set to 1 in the ini‐
3225 trc configuration file.
3226
3227 Generated code for quarantine mechanism sets the
3228 __MODULES_QUARANTINE_SET environment variable when calling the
3229 modulecmd.tcl script to make it restore the environment variable
3230 put in quarantine.
3231
3232 This environment variable value supersedes the default value set
3233 in the quarantine_support configuration option. It can be de‐
3234 fined with the config sub-command.
3235
3236 MODULES_REDIRECT_OUTPUT
3237 If set to 0, the output generated by module command is kept on
3238 stderr and not redirected to stdout channel.
3239
3240 This environment variable value supersedes the default value set
3241 in the redirect_output configuration option. It can be defined
3242 with the config sub-command. The --redirect and --no-redirect
3243 command line switches override this environment variable.
3244
3245 MODULES_RESET_TARGET_STATE
3246 Defines behavior of reset sub-command. When set to __init__,
3247 initial environment is restored. When set to __purge__, reset
3248 performs a purge sub-command. Any other value designates a name
3249 collection to restore.
3250
3251 This environment variable value supersedes the default value set
3252 in the reset_target_state configuration option. It can be de‐
3253 fined with the config sub-command.
3254
3255 MODULES_RUN_QUARANTINE
3256 A space separated list of environment variable names that should
3257 be passed indirectly to modulecmd.tcl to protect its run-time
3258 environment from side-effect coming from their current defini‐
3259 tion.
3260
3261 If the quarantine mechanism has been included in module shell
3262 function (see MODULES_QUARANTINE_SUPPORT), each variable found
3263 in MODULES_RUN_QUARANTINE will have its value emptied or set to
3264 the value of the corresponding MODULES_RUNENV_<VAR> variable
3265 when defining modulecmd.tcl run-time environment.
3266
3267 Original values of these environment variables set in quarantine
3268 are passed to modulecmd.tcl via __MODULES_QUAR_<VAR> variables.
3269
3270 This environment variable value supersedes the default value set
3271 in the run_quarantine configuration option. It can be defined
3272 with the config sub-command.
3273
3274 MODULES_RUNENV_<VAR>
3275 Value to set to environment variable <VAR> for modulecmd.tcl
3276 run-time execution if <VAR> is referred in
3277 MODULES_RUN_QUARANTINE.
3278
3279 MODULES_SEARCH_MATCH
3280 When searching for modules with avail sub-command, defines the
3281 way query string should match against available module names.
3282 With starts_with value, returned modules are those whose name
3283 begins by search query string. When set to contains, any modules
3284 whose fully qualified name contains search query string are re‐
3285 turned.
3286
3287 This environment variable value supersedes the default value set
3288 in the search_match configuration option. It can be defined with
3289 the config sub-command. The --starts-with and --contains command
3290 line switches override this environment variable.
3291
3292 MODULES_SET_SHELL_STARTUP
3293 If set to 1, defines when module command initializes the shell
3294 startup file to ensure that the module command is still defined
3295 in sub-shells. Setting shell startup file means defining the ENV
3296 and BASH_ENV environment variable to the Modules bourne shell
3297 initialization script. If set to 0, shell startup file is not
3298 defined.
3299
3300 This environment variable value supersedes the default value set
3301 in the set_shell_startup configuration option. It can be defined
3302 with the config sub-command.
3303
3304 To enable shell startup file, MODULES_SET_SHELL_STARTUP should
3305 be set to 1 prior Modules initialization or the
3306 set_shell_startup configuration option should be set to 1 in the
3307 initrc configuration file.
3308
3309 MODULES_SHELLS_WITH_KSH_FPATH
3310 A list of shell on which the FPATH environment variable should
3311 be defined at initialization time to point to the ksh-functions
3312 directory where the ksh initialization script for module command
3313 is located. It enables for the listed shells to get module
3314 function defined when starting ksh as sub-shell from there.
3315
3316 Accepted values are a list of shell among sh, bash, csh, tcsh
3317 and fish separated by colon character (:).
3318
3319 This environment variable value supersedes the default value set
3320 in the shells_with_ksh_fpath configuration option. It can be de‐
3321 fined with the config sub-command.
3322
3323 To enable the setup of FPATH for some shells,
3324 MODULES_SHELLS_WITH_KSH_FPATH should be set to the list of these
3325 shells prior Modules initialization or the shells_with_ksh_fpath
3326 configuration option should be set to the list of these shells
3327 in the initrc configuration file.
3328
3329 MODULES_SILENT_SHELL_DEBUG
3330 If set to 1, disable any xtrace or verbose debugging property
3331 set on current shell session for the duration of either the mod‐
3332 ule command or the module shell initialization script. Only ap‐
3333 plies to Bourne Shell (sh) and its derivatives.
3334
3335 This environment variable value supersedes the default value set
3336 in the silent_shell_debug configuration option. It can be de‐
3337 fined with the config sub-command.
3338
3339 To generate the code to silence shell debugging property in the
3340 module shell function, MODULES_SILENT_SHELL_DEBUG should be set
3341 to 1 prior Modules initialization or the silent_shell_debug con‐
3342 figuration option should be set to 1 in the initrc configuration
3343 file.
3344
3345 MODULES_SITECONFIG
3346 Location of a site-specific configuration script to source into
3347 modulecmd.tcl. See Site-specific configuration section for de‐
3348 tails.
3349
3350 This environment variable value supersedes the default value set
3351 in the extra_siteconfig configuration option. It can be defined
3352 with the config sub-command. This environment variable is ig‐
3353 nored if extra_siteconfig has been declared locked in
3354 locked_configs configuration option.
3355
3356 MODULES_TAG_ABBREV
3357 Specifies the abbreviation strings used to report module tags
3358 (see Module tags section). Its value is a colon-separated list
3359 of module tag names associated to an abbreviation string (e.g.
3360 tagname=abbrev).
3361
3362 If a tag is associated to an empty string abbreviation, this tag
3363 will not be reported. In case the whole MODULES_TAG_ABBREV envi‐
3364 ronment variable is set to an empty string, tags are reported
3365 but not abbreviated.
3366
3367 This environment variable value supersedes the default value set
3368 in the tag_abbrev configuration option. It can be defined with
3369 the config sub-command.
3370
3371 MODULES_TAG_COLOR_NAME
3372 Specifies the tag names or abbreviations whose graphical render‐
3373 ing should be applied over themselves instead of being applied
3374 over the name of the module they are attached to. Value of
3375 MODULES_TAG_COLOR_NAME is a colon-separated list of module tag
3376 names or abbreviation strings (see Module tags section).
3377
3378 When a select graphic rendition is defined for a tag name or a
3379 tag abbreviation string, it is applied over the module name as‐
3380 sociated with the tag and tag name or abbreviation is not dis‐
3381 played. When listed in MODULES_TAG_COLOR_NAME environment vari‐
3382 able, a tag name or abbreviation is displayed and select graphic
3383 rendition is applied over it.
3384
3385 This environment variable value supersedes the default value set
3386 in the tag_color_name configuration option. It can be defined
3387 with the config sub-command.
3388
3389 MODULES_TCL_LINTER
3390 Command name or path for use to check syntax of modulefile
3391 through the lint sub-command.
3392
3393 This environment variable value supersedes the default value set
3394 in the tcl_linter configuration option. It can be defined with
3395 the config sub-command.
3396
3397 MODULES_TERM_BACKGROUND
3398 Inform Modules of the terminal background color to determine if
3399 the color set for dark background or the color set for light
3400 background should be used to color output in case no specific
3401 color set is defined with the MODULES_COLORS variable. Accepted
3402 values are dark and light.
3403
3404 This environment variable value supersedes the default value set
3405 in the term_background configuration option. It can be defined
3406 with the config sub-command.
3407
3408 MODULES_TERM_WIDTH
3409 Specifies the number of columns of the output. If set to 0, the
3410 output width will be the full terminal width, which is automati‐
3411 cally detected by the module command. Accepted values are inte‐
3412 gers comprised between 0 and 1000.
3413
3414 This environment variable value supersedes the default value set
3415 in the term_width configuration option. It can be defined with
3416 the config sub-command. The --width/-w command line switches
3417 override this environment variable.
3418
3419 MODULES_UNLOAD_MATCH_ORDER
3420 When a module unload request matches multiple loaded modules,
3421 unload firstly loaded module or lastly loaded module. Accepted
3422 values are returnfirst and returnlast.
3423
3424 This environment variable value supersedes the default value set
3425 in the unload_match_order configuration option. It can be de‐
3426 fined with the config sub-command.
3427
3428 MODULES_VARIANT_SHORTCUT
3429 Specifies the shortcut characters that could be used to specify
3430 and report module variants (see Module variants section). Its
3431 value is a colon-separated list of variant names associated to a
3432 shortcut character (e.g., variantname=shortcutchar).
3433
3434 A variant shortcut must be of one character length and must
3435 avoid characters used for other concerns or in module names
3436 (i.e., [-+~/@=a-zA-Z0-9]).
3437
3438 If a shortcut is associated to an empty string or an invalid
3439 character, this shortcut definition will be ignored.
3440
3441 This environment variable value supersedes the default value set
3442 in the variant_shortcut configuration option. It can be defined
3443 with the config sub-command.
3444
3445 MODULES_VERBOSITY
3446 Defines the verbosity level of the module command. Available
3447 verbosity levels from the least to the most verbose are:
3448
3449 • silent: turn off error, warning and informational messages but
3450 does not affect module command output result.
3451
3452 • concise: enable error and warning messages but disable infor‐
3453 mational messages.
3454
3455 • normal: turn on informational messages, like a report of the
3456 additional module evaluations triggered by loading or unload‐
3457 ing modules, aborted evaluation issues or a report of each
3458 module evaluation occurring during a restore or source
3459 sub-commands.
3460
3461 • verbose: add additional informational messages, like a system‐
3462 atic report of the loading or unloading module evaluations.
3463
3464 • verbose2: report loading or unloading module evaluations of
3465 hidden-loaded modules, report if loading module is already
3466 loaded or if unloading module is not loaded.
3467
3468 • trace: provide details on module searches, resolutions, selec‐
3469 tions and evaluations.
3470
3471 • debug: print debugging messages about module command execu‐
3472 tion.
3473
3474 • debug2: report modulecmd.tcl procedure calls in addition to
3475 printing debug messages.
3476
3477 This environment variable value supersedes the default value set
3478 in the verbosity configuration option. It can be defined with
3479 the config sub-command. The --silent, --verbose, --debug and
3480 --trace command line switches override this environment vari‐
3481 able.
3482
3483 MODULES_WA_277
3484 If set to 1 prior to Modules package initialization, enables
3485 workaround for Tcsh history issue (see
3486 https://github.com/cea-hpc/modules/issues/277). This issue
3487 leads to erroneous history entries under Tcsh shell. When work‐
3488 around is enabled, an alternative module alias is defined which
3489 fixes the history mechanism issue. However the alternative defi‐
3490 nition of the module alias weakens shell evaluation of the code
3491 produced by modulefiles. Characters with a special meaning for
3492 Tcsh shell (like { and }) may not be used anymore in shell alias
3493 definition otherwise the evaluation of the code produced by mod‐
3494 ulefiles will return a syntax error.
3495
3496 This environment variable value supersedes the default value set
3497 in the wa_277 configuration option. It can be defined with the
3498 config sub-command.
3499
3500 To enable this workaround, MODULES_WA_277 should be set to 1
3501 prior Modules initialization or the wa_277 configuration option
3502 should be set to 1 in the initrc configuration file.
3503
3504 MODULESHOME
3505 The location of the main Modules package file directory contain‐
3506 ing module command initialization scripts, the executable pro‐
3507 gram modulecmd.tcl, and a directory containing a collection of
3508 main modulefiles.
3509
3510 This environment variable value supersedes the default value set
3511 in the home configuration option. It can be defined with the
3512 config sub-command.
3513
3515 /usr/share/Modules
3516 The MODULESHOME directory.
3517
3518 /etc/environment-modules/initrc
3519 The configuration file evaluated by modulecmd.tcl when it initial‐
3520 izes to enable the default modulepaths, load the default modules and
3521 set module command configuration.
3522
3523 initrc is a modulefile so it is written as a Tcl script and defines
3524 modulepaths to enable with module use, modules to load with module
3525 load and configuration to apply with module config. As any module‐
3526 file initrc must begin with the Modules magic cookie (i.e., #%Module
3527 file signature).
3528
3529 initrc is optional. When this configuration file is present it is
3530 evaluated after the modulespath configuration file. See the Package
3531 Initialization section for details.
3532
3533 /etc/environment-modules/modulespath
3534 The configuration file evaluated by modulecmd.tcl when it initial‐
3535 izes to enable the default modulepaths. This file contains the list
3536 of modulepaths separated by either newline or colon characters.
3537
3538 modulespath is optional. When this configuration file is present it
3539 is evaluated before the initrc configuration file. See the Package
3540 Initialization section for details.
3541
3542 /etc/environment-modules/siteconfig.tcl
3543 The site-specific configuration script of modulecmd.tcl. An addi‐
3544 tional configuration script could be defined using the
3545 MODULES_SITECONFIG environment variable. See Site-specific configu‐
3546 ration for detailed information.
3547
3548 /etc/environment-modules/rc
3549 The system-wide modules rc file. The location of this file can be
3550 changed using the MODULERCFILE environment variable as described
3551 above.
3552
3553 $HOME/.modulerc
3554 The user specific modules rc file.
3555
3556 $HOME/.module
3557 The user specific collection directory.
3558
3559 /usr/share/Modules/modulefiles
3560 The directory for system-wide modulefiles. The location of the di‐
3561 rectory can be changed using the MODULEPATH environment variable as
3562 described above.
3563
3564 <modulepath>/.modulerc
3565 Modulepath-specific module rc file.
3566
3567 <modulepath>/.modulecache
3568 Modulepath-specific module cache file.
3569
3570 /usr/share/Modules/libexec/modulecmd.tcl
3571 The modulefile interpreter that gets executed upon each invocation
3572 of module.
3573
3574 /usr/share/Modules/init/<shell>
3575 The Modules package initialization file sourced into the user's en‐
3576 vironment.
3577
3579 ml, modulefile
3580
3582 1996-1999 John L. Furlani & Peter W. Osel, 1998-2017 R.K.Owen,
3583 2002-2004 Mark Lakata, 2004-2017 Kent Mein, 2016-2022 Xavier Delaruelle
3584
3585
3586
3587
35885.3.1 2023-06-27 MODULE(1)