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 creates the module command as either an alias or function and
37 creates Modules environment variables.
38
39 The module alias or function executes the modulecmd.tcl program located
40 in /usr/share/Modules/libexec and has the shell evaluate the command's
41 output. The first argument to modulecmd.tcl specifies the type of
42 shell.
43
44 The initialization scripts are kept in /usr/share/Modules/init/<shell>
45 where <shell> is the name of the sourcing shell. For example, a C Shell
46 user sources the /usr/share/Modules/init/csh script. The sh, csh, tcsh,
47 bash, ksh, zsh and fish shells are supported by modulecmd.tcl. In addi‐
48 tion, python, perl, ruby, tcl, cmake, r and lisp "shells" are supported
49 which writes the environment changes to stdout as python, perl, ruby,
50 tcl, lisp, r or cmake code.
51
52 Initialization may also be performed by calling the autoinit sub-com‐
53 mand of the modulecmd.tcl program. Evaluation into the shell of the re‐
54 sult of this command defines the module alias or function.
55
56 A ml alias or function may also be defined at initialization time if
57 enabled (see MODULES_ML section). ml is a handy frontend leveraging all
58 module command capabilities with less character typed. See ml(1) for
59 detailed information.
60
61 Examples of initialization
62 C Shell initialization (and derivatives):
63
64 source /usr/share/Modules/init/csh
65 module load modulefile modulefile ...
66
67 Bourne Shell (sh) (and derivatives):
68
69 . /usr/share/Modules/init/sh
70 module load modulefile modulefile ...
71
72 Perl:
73
74 require "/usr/share/Modules/init/perl.pm";
75 &module('load', 'modulefile', 'modulefile', '...');
76
77 Python:
78
79 import os
80 exec(open('/usr/share/Modules/init/python.py').read())
81 module('load', 'modulefile', 'modulefile', '...')
82
83 Bourne Shell (sh) (and derivatives) with autoinit sub-command:
84
85 eval "`/usr/share/Modules/libexec/modulecmd.tcl sh autoinit`"
86
87 Modulecmd startup
88 Upon invocation modulecmd.tcl sources a site-specific configuration
89 script if it exists. The location for this script is /etc/environment-
90 modules/siteconfig.tcl. An additional siteconfig script may be speci‐
91 fied with the MODULES_SITECONFIG environment variable, if allowed by
92 modulecmd.tcl configuration, and will be loaded if it exists after
93 /etc/environment-modules/siteconfig.tcl. Siteconfig is a Tcl script
94 that enables to supersede any global variable or procedure definition
95 of modulecmd.tcl.
96
97 Afterward, modulecmd.tcl sources rc files which contain global, user
98 and modulefile specific setups. These files are interpreted as module‐
99 files. See modulefile(4) for detailed information.
100
101 Upon invocation of modulecmd.tcl module run-command files are sourced
102 in the following order:
103
104 1. Global RC file as specified by MODULERCFILE variable or /etc/envi‐
105 ronment-modules/rc. If MODULERCFILE points to a directory, the mod‐
106 ulerc file in this directory is used as global RC file.
107
108 2. User specific module RC file $HOME/.modulerc
109
110 3. All .modulerc and .version files found during modulefile seeking.
111
112 Command line switches
113 The module command accepts command line switches as its first parame‐
114 ter. These may be used to control output format of all information dis‐
115 played and the module behavior in case of locating and interpreting
116 modulefiles.
117
118 All switches may be entered either in short or long notation. The fol‐
119 lowing switches are accepted:
120
121 --all, -a
122 Include hidden modules in search performed with avail, aliases,
123 list, search or whatis sub-commands. Hard-hidden modules are not
124 affected by this option.
125
126 --auto On load, unload and switch sub-commands, enable automated module
127 handling mode. See also MODULES_AUTO_HANDLING section.
128
129 --color=<WHEN>
130 Colorize the output. WHEN defaults to always or can be never or
131 auto. See also MODULES_COLOR section.
132
133 --contains, -C
134 On avail sub-command, return modules whose fully qualified name
135 contains search query string.
136
137 --debug, -D, -DD
138 Debug mode. Causes module to print debugging messages about its
139 progress. Multiple -D options increase the debug verbosity. The
140 maximum is 2.
141
142 --default, -d
143 On avail sub-command, display only the default version of each
144 module name. Default version is the explicitly set default ver‐
145 sion or also the implicit default version if the configuration
146 option implicit_default is enabled (see Locating Modulefiles
147 section in the modulefile(4) man page for further details on im‐
148 plicit default version).
149
150 --force, -f
151 On load, unload and switch sub-commands, by-pass any unsatisfied
152 modulefile constraint corresponding to the declared prereq and
153 conflict. Which means for instance that a modulefile will be
154 loaded even if it comes in conflict with another loaded module‐
155 file or that a modulefile will be unloaded even if it is re‐
156 quired as a prereq by another modulefile.
157
158 On clear sub-command, skip the confirmation dialog and proceed.
159
160 --help, -h
161 Give some helpful usage information, and terminates the command.
162
163 --icase, -i
164 Match module specification arguments in a case insensitive man‐
165 ner.
166
167 --indepth
168 On avail sub-command, include in search results the matching
169 modulefiles and directories and recursively the modulefiles and
170 directories contained in these matching directories.
171
172 --json, -j
173 Display avail, list, savelist, whatis and search output in JSON
174 format.
175
176 --latest, -L
177 On avail sub-command, display only the highest numerically
178 sorted version of each module name (see Locating Modulefiles
179 section in the modulefile(4) man page).
180
181 --long, -l
182 Display avail, list and savelist output in long format.
183
184 --no-auto
185 On load, unload and switch sub-commands, disable automated mod‐
186 ule handling mode. See also MODULES_AUTO_HANDLING section.
187
188 --no-indepth
189 On avail sub-command, limit search results to the matching mod‐
190 ulefiles and directories found at the depth level expressed by
191 the search query. Thus modulefiles contained in directories part
192 of the result are excluded.
193
194 --no-pager
195 Do not pipe message output into a pager.
196
197 --output=LIST, -o LIST
198 Define the content to report in addition to module names. This
199 option is supported by avail and list sub-commands on their reg‐
200 ular or terse output modes. Accepted values are a LIST of ele‐
201 ments to report separated by colon character (:). The order of
202 the elements in LIST does not matter.
203
204 Accepted elements in LIST for avail sub-command are: modulepath,
205 alias, dirwsym, sym, tag and key.
206
207 Accepted elements in LIST for list sub-command are: header, idx,
208 sym, tag and key.
209
210 The order of the elements in LIST does not matter. Module names
211 are the only content reported when LIST is set to an empty
212 value.
213
214 See also MODULES_AVAIL_OUTPUT and MODULES_LIST_OUTPUT.
215
216 --paginate
217 Pipe all message output into less (or if set, to the command re‐
218 ferred in MODULES_PAGER variable) if error output stream is a
219 terminal. See also MODULES_PAGER section.
220
221 --silent, -s
222 Turn off error, warning and informational messages. module com‐
223 mand output result is not affected by silent mode.
224
225 --starts-with, -S
226 On avail sub-command, return modules whose name starts with
227 search query string.
228
229 --terse, -t
230 Display avail, list and savelist output in short format.
231
232 --trace, -T
233 Trace mode. Report details on module searches, resolutions, se‐
234 lections and evaluations in addition to printing verbose mes‐
235 sages.
236
237 --verbose, -v, -vv
238 Enable verbose messages during module command execution. Multi‐
239 ple -v options increase the verbosity level. The maximum is 2.
240
241 --version, -V
242 Lists the current version of the module command. The command
243 then terminates without further processing.
244
245 --width=COLS, -w COLS
246 Set the width of the output to COLS columns. See also
247 MODULES_TERM_WIDTH section.
248
249 Module Sub-Commands
250 add modulefile...
251 See load.
252
253 aliases [-a]
254 List all available symbolic version-names and aliases in the
255 current MODULEPATH. All directories in the MODULEPATH are re‐
256 cursively searched in the same manner than for the avail
257 sub-command. Only the symbolic version-names and aliases found
258 in the search are displayed.
259
260 append-path [-d C|--delim C|--delim=C] [--duplicates] variable value...
261 Append value to environment variable. The variable is a colon,
262 or delimiter, separated list. See append-path in the module‐
263 file(4) man page for further explanation.
264
265 apropos [-a] [-j] string
266 See search.
267
268 avail [-d|-L] [-t|-l|-j] [-a] [-o LIST] [-S|-C] [--indepth|--no-in‐
269 depth] [path...]
270 List all available modulefiles in the current MODULEPATH. All
271 directories in the MODULEPATH are recursively searched for files
272 containing the modulefile magic cookie. If an argument is given,
273 then each directory in the MODULEPATH is searched for module‐
274 files whose pathname, symbolic version-name or alias match the
275 argument. Argument may contain wildcard characters. Multiple
276 versions of an application can be supported by creating a subdi‐
277 rectory for the application containing modulefiles for each ver‐
278 sion.
279
280 Symbolic version-names and aliases found in the search are dis‐
281 played in the result of this sub-command. Symbolic version-names
282 are displayed next to the modulefile they are assigned to within
283 parenthesis. Aliases are listed in the MODULEPATH section where
284 they have been defined. To distinguish aliases from modulefiles
285 a @ symbol is added within parenthesis next to their name.
286 Aliases defined through a global or user specific module RC file
287 are listed under the global/user modulerc section.
288
289 When colored output is enabled and a specific graphical rendi‐
290 tion is defined for module default version, the default symbol
291 is omitted and instead the defined graphical rendition is ap‐
292 plied to the relative modulefile. When colored output is enabled
293 and a specific graphical rendition is defined for module alias,
294 the @ symbol is omitted. The defined graphical rendition applies
295 to the module alias name. See MODULES_COLOR and MODULES_COLORS
296 sections for details on colored output.
297
298 Module tags applying to the available modulefiles returned by
299 the avail sub-command are reported along the module name they
300 are associated to (see Module tags section).
301
302 A Key section is added at the end of the output in case some el‐
303 ements are reported in parentheses or chevrons along module name
304 or if some graphical rendition is made over some outputed ele‐
305 ments. This Key section gives hints on the meaning of such ele‐
306 ments.
307
308 The parameter path may also refer to a symbolic modulefile name
309 or a modulefile alias. It may also leverage a specific syntax to
310 finely select module version (see Advanced module version speci‐
311 fiers section below).
312
313 clear [-f]
314 Force the Modules package to believe that no modules are cur‐
315 rently loaded. A confirmation is requested if command-line
316 switch -f (or --force) is not passed. Typed confirmation should
317 equal to yes or y in order to proceed.
318
319 config [--dump-state|name [value]|--reset name]
320 Gets or sets modulecmd.tcl options. Reports the currently set
321 value of passed option name or all existing options if no name
322 passed. If a name and a value are provided, the value of option
323 name is set to value. If command-line switch --reset is passed
324 in addition to a name, overridden value for option name is
325 cleared.
326
327 When a reported option value differs from default value a men‐
328 tion is added to indicate whether the overridden value is coming
329 from a command-line switch (cmd-line) or from an environment
330 variable (env-var). When a reported option value is locked and
331 cannot be altered a (locked) mention is added.
332
333 If no value is currently set for an option name, the mention
334 <undef> is reported.
335
336 When command-line switch --dump-state is passed, current mod‐
337 ulecmd.tcl state and Modules-related environment variables are
338 reported in addition to currently set modulecmd.tcl options.
339
340 Existing option names are:
341
342 advanced_version_spec
343 Advanced module version specification to finely select
344 modulefiles. Defines environment variable
345 MODULES_ADVANCED_VERSION_SPEC when set.
346
347 auto_handling
348 Automated module handling mode. Defines
349 MODULES_AUTO_HANDLING.
350
351 avail_indepth
352 avail sub-command in depth search mode. Defines
353 MODULES_AVAIL_INDEPTH.
354
355 avail_output
356 Content to report in addition to module names on avail
357 sub-command regular output mode. Defines
358 MODULES_AVAIL_OUTPUT.
359
360 avail_terse_output
361 Content to report in addition to module names on avail
362 sub-command terse output mode. Defines
363 MODULES_AVAIL_TERSE_OUTPUT.
364
365 collection_pin_version
366 Register exact modulefile version in collection. Defines
367 MODULES_COLLECTION_PIN_VERSION.
368
369 collection_target
370 Collection target which is valid for current system. De‐
371 fines MODULES_COLLECTION_TARGET.
372
373 color Colored output mode. Defines MODULES_COLOR.
374
375 colors Chosen colors to highlight output items. Defines
376 MODULES_COLORS.
377
378 contact
379 Modulefile contact address. Defines MODULECONTACT.
380
381 extended_default
382 Allow partial module version specification. Defines
383 MODULES_EXTENDED_DEFAULT.
384
385 extra_siteconfig
386 Additional site-specific configuration script location.
387 Defines MODULES_SITECONFIG.
388
389 home Location of Modules package main directory. Defines
390 MODULESHOME.
391
392 icase Enable case insensitive match. Defines MODULES_ICASE.
393
394 ignored_dirs
395 Directories ignored when looking for modulefiles.
396
397 The value of this option cannot be altered.
398
399 implicit_default
400 Set an implicit default version for modules. Defines
401 MODULES_IMPLICIT_DEFAULT.
402
403 implicit_requirement
404 Implicitly define a requirement onto modules specified on
405 module commands in modulefile. Defines
406 MODULES_IMPLICIT_REQUIREMENT.
407
408 list_output
409 Content to report in addition to module names on list
410 sub-command regular output mode. Defines
411 MODULES_LIST_OUTPUT.
412
413 list_terse_output
414 Content to report in addition to module names on list
415 sub-command terse output mode. Defines
416 MODULES_LIST_TERSE_OUTPUT.
417
418 locked_configs
419 Configuration options that cannot be superseded. All op‐
420 tions referred in locked_configs value are locked, thus
421 their value cannot be altered.
422
423 The value of this option cannot be altered.
424
425 mcookie_version_check
426 Defines if the version set in the Modules magic cookie
427 used in modulefile should be checked against the version
428 of modulecmd.tcl to determine if the modulefile could be
429 evaluated or not. Defines MODULES_MCOOKIE_VERSION_CHECK.
430
431 ml Define ml command at initialization time. Defines
432 MODULES_ML.
433
434 nearly_forbidden_days
435 Set the number of days a module should be considered
436 nearly forbidden prior reaching its expiry date. Defines
437 MODULES_NEARLY_FORBIDDEN_DAYS.
438
439 pager Text viewer to paginate message output. Defines
440 MODULES_PAGER.
441
442 rcfile Global run-command file location. Defines MODULERCFILE.
443
444 run_quarantine
445 Environment variables to indirectly pass to mod‐
446 ulecmd.tcl. Defines MODULES_RUN_QUARANTINE.
447
448 silent_shell_debug
449 Disablement of shell debugging property for the module
450 command. Defines MODULES_SILENT_SHELL_DEBUG.
451
452 search_match
453 Module search match style. Defines MODULES_SEARCH_MATCH.
454
455 set_shell_startup
456 Ensure module command definition by setting shell startup
457 file. Defines MODULES_SET_SHELL_STARTUP.
458
459 shells_with_ksh_fpath
460 Ensure module command is defined in ksh when it is
461 started as a sub-shell from the listed shells. Defines
462 MODULES_SHELLS_WITH_KSH_FPATH.
463
464 siteconfig
465 Primary site-specific configuration script location.
466
467 The value of this option cannot be altered.
468
469 tag_abbrev
470 Abbreviations to use to report module tags. Defines
471 MODULES_TAG_ABBREV.
472
473 tag_color_name
474 Tags whose name should be colored instead of module name.
475 Defines MODULES_TAG_COLOR_NAME.
476
477 tcl_ext_lib
478 Modules Tcl extension library location.
479
480 The value of this option cannot be altered.
481
482 term_background
483 Terminal background color kind. Defines
484 MODULES_TERM_BACKGROUND.
485
486 term_width
487 Set the width of the output. Defines MODULES_TERM_WIDTH.
488
489 unload_match_order
490 Unload firstly loaded or lastly loaded module matching
491 request. Defines MODULES_UNLOAD_MATCH_ORDER.
492
493 verbosity
494 Module command verbosity level. Defines
495 MODULES_VERBOSITY.
496
497 wa_277 Workaround for Tcsh history issue. Defines
498 MODULES_WA_277.
499
500 display modulefile...
501 Display information about one or more modulefiles. The display
502 sub-command will list the full path of the modulefile and the
503 environment changes the modulefile will make if loaded. (Note:
504 It will not display any environment changes found within condi‐
505 tional statements.)
506
507 The parameter modulefile may also be a symbolic modulefile name
508 or a modulefile alias. It may also leverage a specific syntax to
509 finely select module version (see Advanced module version speci‐
510 fiers section below).
511
512 help [modulefile...]
513 Print the usage of each sub-command. If an argument is given,
514 print the Module-specific help information for the modulefile.
515
516 The parameter modulefile may also be a symbolic modulefile name
517 or a modulefile alias. It may also leverage a specific syntax to
518 finely select module version (see Advanced module version speci‐
519 fiers section below).
520
521 info-loaded modulefile
522 Returns the names of currently loaded modules matching passed
523 modulefile. Returns an empty string if passed modulefile does
524 not match any loaded modules. See module-info loaded in the mod‐
525 ulefile(4) man page for further explanation.
526
527 initadd modulefile...
528 Add modulefile to the shell's initialization file in the user's
529 home directory. The startup files checked (in order) are:
530
531 C Shell
532 .modules, .cshrc, .csh_variables and .login
533
534 TENEX C Shell
535 .modules, .tcshrc, .cshrc, .csh_variables and .login
536
537 Bourne and Korn Shells
538 .modules, .profile
539
540 GNU Bourne Again Shell
541 .modules, .bash_profile, .bash_login, .profile and .bashrc
542
543 Z Shell
544 .modules, .zshrc, .zshenv and .zlogin
545
546 Friendly Interactive Shell
547 .modules, .config/fish/config.fish
548
549 If a module load line is found in any of these files, the mod‐
550 ulefiles are appended to any existing list of modulefiles. The
551 module load line must be located in at least one of the files
552 listed above for any of the init sub-commands to work properly.
553 If the module load line is found in multiple shell initializa‐
554 tion files, all of the lines are changed.
555
556 initclear
557 Clear all of the modulefiles from the shell's initialization
558 files.
559
560 initlist
561 List all of the modulefiles loaded from the shell's initializa‐
562 tion file.
563
564 initprepend modulefile...
565 Does the same as initadd but prepends the given modules to the
566 beginning of the list.
567
568 initrm modulefile...
569 Remove modulefile from the shell's initialization files.
570
571 initswitch modulefile1 modulefile2
572 Switch modulefile1 with modulefile2 in the shell's initializa‐
573 tion files.
574
575 is-avail modulefile...
576 Returns a true value if any of the listed modulefiles exists in
577 enabled MODULEPATH. Returns a false value otherwise. See
578 is-avail in the modulefile(4) man page for further explanation.
579
580 The parameter modulefile may also be a symbolic modulefile name
581 or a modulefile alias. It may also leverage a specific syntax to
582 finely select module version (see Advanced module version speci‐
583 fiers section below).
584
585 is-loaded [modulefile...]
586 Returns a true value if any of the listed modulefiles has been
587 loaded or if any modulefile is loaded in case no argument is
588 provided. Returns a false value otherwise. See is-loaded in the
589 modulefile(4) man page for further explanation.
590
591 The parameter modulefile may also be a symbolic modulefile name
592 or a modulefile alias. It may also leverage a specific syntax to
593 finely select module version (see Advanced module version speci‐
594 fiers section below).
595
596 is-saved [collection...]
597 Returns a true value if any of the listed collections exists or
598 if any collection exists in case no argument is provided. Re‐
599 turns a false value otherwise. See is-saved in the modulefile(4)
600 man page for further explanation.
601
602 is-used [directory...]
603 Returns a true value if any of the listed directories has been
604 enabled in MODULEPATH or if any directory is enabled in case no
605 argument is provided. Returns a false value otherwise. See
606 is-used in the modulefile(4) man page for further explanation.
607
608 keyword [-a] [-j] string
609 See search.
610
611 list [-a] [-o LIST] [-t|-l|-j]
612 List loaded modules.
613
614 Module tags applying to the loaded modules are reported along
615 the module name they are associated to (see Module tags sec‐
616 tion).
617
618 A Key section is added at the end of the output in case some el‐
619 ements are reported in parentheses or chevrons along module name
620 or if some graphical rendition is made over some outputed ele‐
621 ments. This Key section gives hints on the meaning of such ele‐
622 ments.
623
624 load [--auto|--no-auto] [-f] modulefile...
625 Load modulefile into the shell environment.
626
627 Once loaded, the loaded module tag is associated to the loaded
628 module. If module has been automatically loaded by another mod‐
629 ule, the auto-loaded tag is associated instead (see Module tags
630 section).
631
632 The parameter modulefile may also be a symbolic modulefile name
633 or a modulefile alias. It may also leverage a specific syntax to
634 finely select module version (see Advanced module version speci‐
635 fiers section below).
636
637 path modulefile
638 Print path to modulefile.
639
640 The parameter modulefile may also be a symbolic modulefile name
641 or a modulefile alias. It may also leverage a specific syntax to
642 finely select module version (see Advanced module version speci‐
643 fiers section below).
644
645 paths modulefile
646 Print path of available modulefiles matching argument.
647
648 The parameter modulefile may also be a symbolic modulefile name
649 or a modulefile alias. It may also leverage a specific syntax to
650 finely select module version (see Advanced module version speci‐
651 fiers section below).
652
653 prepend-path [-d C|--delim C|--delim=C] [--duplicates] variable
654 value...
655 Prepend value to environment variable. The variable is a colon,
656 or delimiter, separated list. See prepend-path in the module‐
657 file(4) man page for further explanation.
658
659 purge [-f]
660 Unload all loaded modulefiles.
661
662 When the --force option is set, also unload modulefiles that are
663 depended by unloadable modules.
664
665 refresh
666 See reload.
667
668 reload Unload then load all loaded modulefiles.
669
670 No unload then load is performed and an error is returned if the
671 loaded modulefiles have unsatisfied constraint corresponding to
672 the prereq and conflict they declare.
673
674 remove-path [-d C|--delim C|--delim=C] [--index] variable value...
675 Remove value from the colon, or delimiter, separated list in en‐
676 vironment variable. See remove-path in the modulefile(4) man
677 page for further explanation.
678
679 restore [collection]
680 Restore the environment state as defined in collection. If col‐
681 lection name is not specified, then it is assumed to be the de‐
682 fault collection. If collection is a fully qualified path, it is
683 restored from this location rather than from a file under the
684 user's collection directory. If MODULES_COLLECTION_TARGET is
685 set, a suffix equivalent to the value of this variable is ap‐
686 pended to the collection file name to restore.
687
688 When restoring a collection, the currently set MODULEPATH direc‐
689 tory list and the currently loaded modulefiles are unused and
690 unloaded then used and loaded to exactly match the MODULEPATH
691 and loaded modulefiles lists saved in this collection file. The
692 order of the paths and modulefiles set in collection is pre‐
693 served when restoring. It means that currently loaded modules
694 are unloaded to get the same LOADEDMODULES root than collection
695 and currently used module paths are unused to get the same
696 MODULEPATH root. Then missing module paths are used and missing
697 modulefiles are loaded.
698
699 If a module, without a default version explicitly defined, is
700 recorded in a collection by its bare name: loading this module
701 when restoring the collection will fail if the configuration op‐
702 tion implicit_default is disabled.
703
704 rm modulefile...
705 See unload.
706
707 save [collection]
708 Record the currently set MODULEPATH directory list and the cur‐
709 rently loaded modulefiles in a collection file under the user's
710 collection directory $HOME/.module. If collection name is not
711 specified, then it is assumed to be the default collection. If
712 collection is a fully qualified path, it is saved at this loca‐
713 tion rather than under the user's collection directory.
714
715 If MODULES_COLLECTION_TARGET is set, a suffix equivalent to the
716 value of this variable will be appended to the collection file
717 name.
718
719 By default, if a loaded modulefile corresponds to the explicitly
720 defined default module version, the bare module name is
721 recorded. If the configuration option implicit_default is en‐
722 abled, the bare module name is also recorded for the implicit
723 default module version. If MODULES_COLLECTION_PIN_VERSION is set
724 to 1, module version is always recorded even if it is the de‐
725 fault version.
726
727 No collection is recorded and an error is returned if the loaded
728 modulefiles have unsatisfied constraint corresponding to the
729 prereq and conflict they declare.
730
731 savelist [-t|-l|-j]
732 List collections that are currently saved under the user's col‐
733 lection directory. If MODULES_COLLECTION_TARGET is set, only
734 collections matching the target suffix will be displayed.
735
736 saverm [collection]
737 Delete the collection file under the user's collection direc‐
738 tory. If collection name is not specified, then it is assumed to
739 be the default collection. If MODULES_COLLECTION_TARGET is set,
740 a suffix equivalent to the value of this variable will be ap‐
741 pended to the collection file name.
742
743 saveshow [collection]
744 Display the content of collection. If collection name is not
745 specified, then it is assumed to be the default collection. If
746 collection is a fully qualified path, this location is displayed
747 rather than a collection file under the user's collection direc‐
748 tory. If MODULES_COLLECTION_TARGET is set, a suffix equivalent
749 to the value of this variable will be appended to the collection
750 file name.
751
752 search [-a] [-j] string
753 Seeks through the module-whatis information of all modulefiles
754 for the specified string. All module-whatis information matching
755 the string in a case insensitive manner will be displayed.
756 string may contain wildcard characters.
757
758 sh-to-mod shell script [arg...]
759 Evaluate with shell the designated script with defined arguments
760 to find out the environment changes it does. Environment prior
761 and after script evaluation are compared to determine these
762 changes. They are translated into modulefile commands to output
763 the modulefile content equivalent to the evaluation of shell
764 script.
765
766 Changes on environment variables, shell aliases, shell functions
767 and current working directory are tracked.
768
769 Shell could be specified as a command name or a fully qualified
770 pathname. The following shells are supported: sh, dash, csh,
771 tcsh, bash, ksh, ksh93, zsh and fish.
772
773 show modulefile...
774 See display.
775
776 source scriptfile...
777 Execute scriptfile into the shell environment. scriptfile must
778 be written with modulefile syntax and specified with a fully
779 qualified path. Once executed scriptfile is not marked loaded in
780 shell environment which differ from load sub-command.
781
782 swap [modulefile1] modulefile2
783 See switch.
784
785 switch [--auto|--no-auto] [-f] [modulefile1] modulefile2
786 Switch loaded modulefile1 with modulefile2. If modulefile1 is
787 not specified, then it is assumed to be the currently loaded
788 module with the same root name as modulefile2.
789
790 The parameter modulefile may also be a symbolic modulefile name
791 or a modulefile alias. It may also leverage a specific syntax to
792 finely select module version (see Advanced module version speci‐
793 fiers section below).
794
795 test modulefile...
796 Execute and display results of the Module-specific tests for the
797 modulefile.
798
799 The parameter modulefile may also be a symbolic modulefile name
800 or a modulefile alias. It may also leverage a specific syntax to
801 finely select module version (see Advanced module version speci‐
802 fiers section below).
803
804 unload [--auto|--no-auto] [-f] modulefile...
805 Remove modulefile from the shell environment.
806
807 The parameter modulefile may also be a symbolic modulefile name
808 or a modulefile alias. It may also leverage a specific syntax to
809 finely select module version (see Advanced module version speci‐
810 fiers section below).
811
812 unuse directory...
813 Remove one or more directories from the MODULEPATH environment
814 variable if reference counter of these directories is equal to 1
815 or unknown.
816
817 Reference counter of directory in MODULEPATH denotes the number
818 of times directory has been enabled. When attempting to remove
819 directory from MODULEPATH, reference counter variable
820 MODULEPATH_modshare is checked and directory is removed only if
821 its relative counter is equal to 1 or not defined. Otherwise di‐
822 rectory is kept and reference counter is decreased by 1.
823
824 use [-a|--append] directory...
825 Prepend one or more directories to the MODULEPATH environment
826 variable. The --append flag will append the directory to
827 MODULEPATH.
828
829 Reference counter environment variable MODULEPATH_modshare is
830 also set to increase the number of times directory has been
831 added to MODULEPATH.
832
833 whatis [-a] [-j] [modulefile...]
834 Display the information set up by the module-whatis commands in‐
835 side the specified modulefiles. These specified modulefiles may
836 be expressed using wildcard characters. If no modulefile is
837 specified, all module-whatis lines will be shown.
838
839 The parameter modulefile may also be a symbolic modulefile name
840 or a modulefile alias. It may also leverage a specific syntax to
841 finely select module version (see Advanced module version speci‐
842 fiers section below).
843
844 Modulefiles
845 modulefiles are written in the Tool Command Language (Tcl) and are in‐
846 terpreted by modulecmd.tcl. modulefiles can use conditional statements.
847 Thus the effect a modulefile will have on the environment may change
848 depending upon the current state of the environment.
849
850 Environment variables are unset when unloading a modulefile. Thus, it
851 is possible to load a modulefile and then unload it without having the
852 environment variables return to their prior state.
853
854 Advanced module version specifiers
855 When the advanced module version specifiers mechanism is enabled (see
856 MODULES_ADVANCED_VERSION_SPEC), the specification of modulefile passed
857 on Modules sub-commands changes. After the module name a version con‐
858 straint prefixed by the @ character may be added. It could be directly
859 appended to the module name or separated from it with a space charac‐
860 ter.
861
862 Constraints can be expressed to refine the selection of module version
863 to:
864
865 • a single version with the @version syntax, for instance foo@1.2.3
866 syntax will select module foo/1.2.3
867
868 • a list of versions with the @version1,version2,... syntax, for in‐
869 stance foo@1.2.3,1.10 will match modules foo/1.2.3 and foo/1.10
870
871 • a range of versions with the @version1:, @:version2 and @ver‐
872 sion1:version2 syntaxes, for instance foo@1.2: will select all ver‐
873 sions of module foo greater than or equal to 1.2, foo@:1.3 will se‐
874 lect all versions less than or equal to 1.3 and foo@1.2:1.3 matches
875 all versions between 1.2 and 1.3 including 1.2 and 1.3 versions
876
877 Advanced specification of single version or list of versions may bene‐
878 fit from the activation of the extended default mechanism (see
879 MODULES_EXTENDED_DEFAULT) to use an abbreviated notation like @1 to re‐
880 fer to more precise version numbers like 1.2.3. Range of versions on
881 its side natively handles abbreviated versions.
882
883 In order to be specified in a range of versions or compared to a range
884 of versions, the version major element should corresponds to a number.
885 For instance 10a, 1.2.3, 1.foo are versions valid for range comparison
886 whereas default or foo.2 versions are invalid for range comparison.
887
888 If the implicit default mechanism is also enabled (see
889 MODULES_IMPLICIT_DEFAULT), a default and latest symbolic versions are
890 automatically defined for each module name (also at each directory
891 level for deep modulefiles). These automatic version symbols are de‐
892 fined unless a symbolic version, alias, or regular module version al‐
893 ready exists for these default or latest version names. Using the
894 mod@latest (or mod/latest) syntax ensures highest available version
895 will be selected.
896
897 The symbolic version loaded may be used over loaded module name to des‐
898 ignate the loaded version of the module. This version symbol should be
899 specified using the @ prefix notation (e.g. foo@loaded). An error is
900 returned if no version of designated module is currently loaded.
901
902 Module tags
903 Module tags are piece of information that can be associated to individ‐
904 ual modulefiles. Tags could be purely informational or may lead to spe‐
905 cific behaviors.
906
907 Module tags may be inherited from the module state set by a modulefile
908 command or consequence of a module action. The inherited tags are:
909
910 • auto-loaded: module has been automatically loaded by another module
911
912 • forbidden: module has been set forbidden through the use of the mod‐
913 ule-forbid command and thus this module cannot be loaded.
914
915 • hidden: module has been set hidden through the use of the module-hide
916 command and thus it is not reported by default among the result of an
917 avail sub-command.
918
919 • hidden-loaded: module has been set hidden once loaded through the use
920 of the module-hide --hidden-loaded command thus it is not reported bu
921 default among the result of a list sub-command.
922
923 • loaded: module is currently loaded
924
925 • nearly-forbidden: module will soon be forbidden, which has been set
926 through the use of the module-forbid command. Thus this module will
927 soon not be able to load anymore.
928
929 Tags may also be associated to modules by using the module-tag module‐
930 file command. Among tags that could be set this way, some have a spe‐
931 cial meaning:
932
933 • sticky: module once loaded cannot be unloaded unless forced or
934 reloaded (see Sticky modules section)
935
936 • super-sticky: module once loaded cannot be unloaded unless reloaded,
937 module cannot be unloaded even if forced (see Sticky modules section)
938
939 Module tags are reported along the module they are associated to on
940 avail and list sub-command results. Tags could be reported either:
941
942 • along the module name, all tags set within angle brackets, each tag
943 separated from the others with a colon character (e.g., foo/1.2
944 <tag1:tag2>).
945
946 • graphically rendered over the module name for each tag associated to
947 a Select Graphic Rendition (SGR) code in the color palette (see
948 MODULES_COLORS)
949
950 When an abbreviated string is associated to a tag name (see
951 MODULES_TAG_ABBREV), this abbreviation is used to report tag along the
952 module name or the tag is graphically rendered over the module name if
953 a SGR code is associated with tag abbreviation in the color palette.
954 With an abbreviation set, the SGR code associated to the tag full name
955 is ignored thus an SGR code should be associated to the abbreviation to
956 get a graphical rendering of tag. If the abbreviation associated to a
957 tag corresponds to the empty string, tag is not reported.
958
959 Graphical rendering is made over the tag name or abbreviation instead
960 of over the module name for each tag name or abbreviation set in the
961 MODULES_TAG_COLOR_NAME environment variable.
962
963 When several tags have to be rendered graphically over the same module
964 name, each tag is rendered over a sub-part of the module name. In case
965 more tags need to be rendered than the total number of characters in
966 the module name, the remaining tags are graphically rendered over the
967 tag name instead of over the module name.
968
969 When the JSON output mode is enabled (with --json), tags are reported
970 by their name under the tags attribute. Tag abbreviation and color ren‐
971 dering do not apply on JSON output.
972
973 Module tags cannot be used in search query to designate a modulefile.
974
975 Sticky modules
976 Modules are said sticky when they cannot be unloaded (they stick to the
977 loaded environment). Two kind of stickyness can be distinguished:
978
979 • sticky module: cannot be unloaded unless if the unload is forced or
980 if the module is reloaded after being unloaded
981
982 • super-sticky module: cannot be unloaded unless if the module is
983 reloaded after being unloaded; super-sticky modules cannot be un‐
984 loaded even if the unload is forced.
985
986 Modules are designated sticky by associating them the sticky or the su‐
987 per-sticky module tag with the module-tag modulefile command.
988
989 When stickyness is defined over the generic module name (and not over a
990 specific module version, a version list or a version range), sticky or
991 super-sticky module can be swapped by another version of module. For
992 instance if the sticky tag is defined over foo module, loaded module
993 foo/1.2 can be swapped by foo/2.0. Such stickyness definition means one
994 version of module should stay loaded whatever version it is.
995
996 Collections
997 Collections describe a sequence of module use then module load commands
998 that are interpreted by modulecmd.tcl to set the user environment as
999 described by this sequence. When a collection is activated, with the
1000 restore sub-command, module paths and loaded modules are unused or un‐
1001 loaded if they are not part or if they are not ordered the same way as
1002 in the collection.
1003
1004 Collections are generated by the save sub-command that dumps the cur‐
1005 rent user environment state in terms of module paths and loaded mod‐
1006 ules. By default collections are saved under the $HOME/.module direc‐
1007 tory.
1008
1009 Collections may be valid for a given target if they are suffixed. In
1010 this case these collections can only be restored if their suffix corre‐
1011 spond to the current value of the MODULES_COLLECTION_TARGET environment
1012 variable (see the dedicated section of this topic below).
1013
1015 The module command exits with 0 if its execution succeed. Otherwise 1
1016 is returned.
1017
1019 _LMFILES_
1020 A colon separated list of the full pathname for all loaded mod‐
1021 ulefiles.
1022
1023 LOADEDMODULES
1024 A colon separated list of all loaded modulefiles.
1025
1026 MODULECONTACT
1027 Email address to contact in case any issue occurs during the in‐
1028 terpretation of modulefiles.
1029
1030 MODULEPATH
1031 The path that the module command searches when looking for mod‐
1032 ulefiles. Typically, it is set to the main modulefiles direc‐
1033 tory, /usr/share/Modules/modulefiles, by the initialization
1034 script. MODULEPATH can be set using module use or by the module
1035 initialization script to search group or personal modulefile di‐
1036 rectories before or after the main modulefile directory.
1037
1038 Path elements registered in the MODULEPATH environment variable
1039 may contain reference to environment variables which are con‐
1040 verted to their corresponding value by module command each time
1041 it looks at the MODULEPATH value. If an environment variable re‐
1042 ferred in a path element is not defined, its reference is con‐
1043 verted to an empty string.
1044
1045 MODULERCFILE
1046 The location of a global run-command file containing modulefile
1047 specific setup. See Modulecmd startup section for detailed in‐
1048 formation.
1049
1050 MODULES_ADVANCED_VERSION_SPEC
1051 If set to 1, enable advanced module version specifiers (see
1052 Advanced module version specifiers section). If set to 0, dis‐
1053 able advanced module version specifiers.
1054
1055 Advanced module version specifiers enablement is defined in the
1056 following order of preference: MODULES_ADVANCED_VERSION_SPEC en‐
1057 vironment variable then the default set in modulecmd.tcl script
1058 configuration. Which means MODULES_ADVANCED_VERSION_SPEC over‐
1059 rides default configuration.
1060
1061 MODULES_AUTO_HANDLING
1062 If set to 1, enable automated module handling mode. If set to 0
1063 disable automated module handling mode. Other values are ig‐
1064 nored.
1065
1066 Automated module handling mode consists in additional actions
1067 triggered when loading or unloading a modulefile to satisfy the
1068 constraints it declares. When loading a modulefile, following
1069 actions are triggered:
1070
1071 • Requirement Load: load of the modulefiles declared as a prereq
1072 of the loading modulefile.
1073
1074 • Dependent Reload: reload of the modulefiles declaring a prereq
1075 onto loaded modulefile or declaring a prereq onto a modulefile
1076 part of this reloading batch.
1077
1078 When unloading a modulefile, following actions are triggered:
1079
1080 • Dependent Unload: unload of the modulefiles declaring a
1081 non-optional prereq onto unloaded modulefile or declaring a
1082 non-optional prereq onto a modulefile part of this unloading
1083 batch. A prereq modulefile is considered optional if the pre‐
1084 req definition order is made of multiple modulefiles and at
1085 least one alternative modulefile is loaded.
1086
1087 • Useless Requirement Unload: unload of the prereq modulefiles
1088 that have been automatically loaded for either the unloaded
1089 modulefile, an unloaded dependent modulefile or a modulefile
1090 part of this useless requirement unloading batch. Modulefiles
1091 are added to this unloading batch only if they are not re‐
1092 quired by any other loaded modulefiles.
1093
1094 • Dependent Reload: reload of the modulefiles declaring a con‐
1095 flict or an optional prereq onto either the unloaded module‐
1096 file, an unloaded dependent or an unloaded useless requirement
1097 or declaring a prereq onto a modulefile part of this reloading
1098 batch.
1099
1100 In case a loaded modulefile has some of its declared constraints
1101 unsatisfied (pre-required modulefile not loaded or conflicting
1102 modulefile loaded for instance), this loaded modulefile is ex‐
1103 cluded from the automatic reload actions described above.
1104
1105 For the specific case of the switch sub-command, where a module‐
1106 file is unloaded to then load another modulefile. Dependent mod‐
1107 ulefiles to Unload are merged into the Dependent modulefiles to
1108 Reload that are reloaded after the load of the switched-to mod‐
1109 ulefile.
1110
1111 Automated module handling mode enablement is defined in the fol‐
1112 lowing order of preference: --auto/--no-auto command line
1113 switches, then MODULES_AUTO_HANDLING environment variable, then
1114 the default set in modulecmd.tcl script configuration. Which
1115 means MODULES_AUTO_HANDLING overrides default configuration and
1116 --auto/--no-auto command line switches override every other ways
1117 to enable or disable this mode.
1118
1119 MODULES_AVAIL_INDEPTH
1120 If set to 1, enable in depth search results for avail sub-com‐
1121 mand. If set to 0 disable avail sub-command in depth mode. Other
1122 values are ignored.
1123
1124 When in depth mode is enabled, modulefiles and directories con‐
1125 tained in directories matching search query are also included in
1126 search results. When disabled these modulefiles and directories
1127 contained in matching directories are excluded.
1128
1129 avail sub-command in depth mode enablement is defined in the
1130 following order of preference: --indepth/--no-indepth command
1131 line switches, then MODULES_AVAIL_INDEPTH environment variable,
1132 then the default set in modulecmd.tcl script configuration.
1133 Which means MODULES_AVAIL_INDEPTH overrides default configura‐
1134 tion and --indepth/--no-indepth command line switches override
1135 every other ways to enable or disable this mode.
1136
1137 MODULES_AVAIL_OUTPUT
1138 A colon separated list of the elements to report in addition to
1139 module names on avail sub-command regular output mode.
1140
1141 Accepted elements that can be set in value list are:
1142
1143 • alias: module aliases.
1144
1145 • dirwsym: directories associated with symbolic versions.
1146
1147 • key: legend appended at the end of the output to explain it.
1148
1149 • modulepath: modulepath names set as header prior the list of
1150 available modules found in them.
1151
1152 • sym: symbolic versions associated with available modules.
1153
1154 • tag: tags associated with available modules.
1155
1156 The order of the elements in the list does not matter. Module
1157 names are the only content reported when LIST is set to an empty
1158 value.
1159
1160 In case the modulepath element is missing from value list, the
1161 available modules from global/user rc and all enabled mod‐
1162 ulepaths are reported as a single list.
1163
1164 avail sub-command regular output content is defined in the fol‐
1165 lowing order of preference: --output/-o command line switches,
1166 then MODULES_AVAIL_OUTPUT environment variable, then the default
1167 set in modulecmd.tcl script configuration. Which means
1168 MODULES_AVAIL_OUTPUT overrides default configuration and
1169 --output/-o command line switches override every other ways to
1170 configure regular output content.
1171
1172 MODULES_AVAIL_TERSE_OUTPUT
1173 A colon separated list of the elements to report in addition to
1174 module names on avail sub-command terse output mode.
1175
1176 See MODULES_AVAIL_OUTPUT to get the accepted elements that can
1177 be set in value list.
1178
1179 The order of the elements in the list does not matter. Module
1180 names are the only content reported when LIST is set to an empty
1181 value.
1182
1183 avail sub-command terse output content is defined in the follow‐
1184 ing order of preference: --output/-o command line switches, then
1185 MODULES_AVAIL_TERSE_OUTPUT environment variable, then the de‐
1186 fault set in modulecmd.tcl script configuration. Which means
1187 MODULES_AVAIL_TERSE_OUTPUT overrides default configuration and
1188 --output/-o command line switches override every other ways to
1189 configure terse output content.
1190
1191 MODULES_CMD
1192 The location of the active module command script.
1193
1194 MODULES_COLLECTION_PIN_VERSION
1195 If set to 1, register exact version number of modulefiles when
1196 saving a collection. Otherwise modulefile version number is
1197 omitted if it corresponds to the explicitly set default version
1198 and also to the implicit default when the configuration option
1199 implicit_default is enabled.
1200
1201 MODULES_COLLECTION_TARGET
1202 The collection target that determines what collections are valid
1203 thus reachable on the current system.
1204
1205 Collection directory may sometimes be shared on multiple ma‐
1206 chines which may use different modules setup. For instance mod‐
1207 ules users may access with the same HOME directory multiple sys‐
1208 tems using different OS versions. When it happens a collection
1209 made on machine 1 may be erroneous on machine 2.
1210
1211 When a target is set, only the collections made for that target
1212 are available to the restore, savelist, saveshow and saverm
1213 sub-commands. Saving a collection registers the target footprint
1214 by suffixing the collection filename with .$MODULES_COLLEC‐
1215 TION_TARGET. The collection target is not involved when collec‐
1216 tion is specified as file path on the saveshow, restore and save
1217 sub-commands.
1218
1219 For example, the MODULES_COLLECTION_TARGET variable may be set
1220 with results from commands like lsb_release, hostname, dnsdo‐
1221 mainname, etc.
1222
1223 MODULES_COLOR
1224 Defines if output should be colored or not. Accepted values are
1225 never, auto and always.
1226
1227 When color mode is set to auto, output is colored only if the
1228 standard error output channel is attached to a terminal.
1229
1230 Colored output enablement is defined in the following order of
1231 preference: --color command line switch, then MODULES_COLOR en‐
1232 vironment variable, then NO_COLOR, CLICOLOR and CLICOLOR_FORCE
1233 environment variables, then the default set in modulecmd.tcl
1234 script configuration. Which means MODULES_COLOR overrides de‐
1235 fault configuration and the NO_COLOR and CLICOLOR/CLICOLOR_FORCE
1236 variables. --color command line switch overrides every other
1237 ways to enable or disable this mode.
1238
1239 NO_COLOR, CLICOLOR and CLICOLOR_FORCE environment variables are
1240 also honored to define color mode. The never mode is set if
1241 NO_COLOR is defined (regardless of its value) or if CLICOLOR
1242 equals to 0. If CLICOLOR is set to another value, it corresponds
1243 to the auto mode. The always mode is set if CLICOLOR_FORCE is
1244 set to a value different than 0. NO_COLOR variable prevails
1245 over CLICOLOR and CLICOLOR_FORCE. Color mode set with these
1246 three variables is superseded by mode set with MODULES_COLOR en‐
1247 vironment variable.
1248
1249 MODULES_COLORS
1250 Specifies the colors and other attributes used to highlight var‐
1251 ious parts of the output. Its value is a colon-separated list of
1252 output items associated to a Select Graphic Rendition (SGR)
1253 code. It follows the same syntax than LS_COLORS.
1254
1255 Output items are designated by keys. Items able to be colorized
1256 are: highlighted element (hi), debug information (db), trace in‐
1257 formation (tr), tag separator (se); Error (er), warning (wa),
1258 module error (me) and info (in) message prefixes; Modulepath
1259 (mp), directory (di), module alias (al), module symbolic version
1260 (sy), module default version (de) and modulefile command (cm).
1261
1262 Module tags can also be colorized. The key to set in the color
1263 palette to get a graphical rendering of a tag is the tag name or
1264 the tag abbreviation if one is defined for tag. The SGR code ap‐
1265 plied to a tag name is ignored if an abbreviation is set for
1266 this tag thus the SGR code should be defined for this abbrevia‐
1267 tion to get a graphical rendering. Each basic tag has by default
1268 a key set in the color palette, based on its abbreviated string:
1269 auto-loaded (aL), forbidden (F), hidden and hidden-loaded (H),
1270 loaded (L), nearly-forbidden (nF), sticky (S) and super-sticky
1271 (sS).
1272
1273 See the Select Graphic Rendition (SGR) section in the documenta‐
1274 tion of the text terminal that is used for permitted values and
1275 their meaning as character attributes. These substring values
1276 are integers in decimal representation and can be concatenated
1277 with semicolons. Modules takes care of assembling the result
1278 into a complete SGR sequence (\33[...m). Common values to con‐
1279 catenate include 1 for bold, 4 for underline, 30 to 37 for fore‐
1280 ground colors and 90 to 97 for 16-color mode foreground colors.
1281 See also
1282 https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters
1283 for a complete SGR code reference.
1284
1285 No graphical rendition will be applied to an output item that
1286 could normally be colored but which is not defined in the color
1287 set. Thus if MODULES_COLORS is defined empty, no output will be
1288 colored at all.
1289
1290 The color set is defined for Modules in the following order of
1291 preference: MODULES_COLORS environment variable, then the de‐
1292 fault set in modulecmd.tcl script configuration. Which means
1293 MODULES_COLORS overrides default configuration.
1294
1295 MODULES_EXTENDED_DEFAULT
1296 If set to 1, a specified module version is matched against
1297 starting portion of existing module versions, where portion is a
1298 substring separated from the rest of the version string by a .
1299 character. For example specified modules mod/1 and mod/1.2 will
1300 match existing modulefile mod/1.2.3.
1301
1302 In case multiple modulefiles match the specified module version
1303 and a single module has to be selected, the explicitly set de‐
1304 fault version is returned if it is part of matching modulefiles.
1305 Otherwise the implicit default among matching modulefiles is re‐
1306 turned if defined (see MODULES_IMPLICIT_DEFAULT section)
1307
1308 This environment variable supersedes the value of the configura‐
1309 tion option extended_default set in modulecmd.tcl script.
1310
1311 MODULES_ICASE
1312 When module specification are passed as argument to module
1313 sub-commands or modulefile Tcl commands, defines the case sensi‐
1314 tiveness to apply to match them. When MODULES_ICASE is set to
1315 never, a case sensitive match is applied in any cases. When set
1316 to search, a case insensitive match is applied to the avail,
1317 whatis and paths sub-commands. When set to always, a case insen‐
1318 sitive match is also applied to the other module sub-commands
1319 and modulefile Tcl commands for the module specification they
1320 receive as argument.
1321
1322 Case sensitiveness behavior is defined in the following order of
1323 preference: --icase command line switch, which corresponds to
1324 the always mode, then MODULES_ICASE environment variable, then
1325 the default set in modulecmd.tcl script configuration. Which
1326 means MODULES_ICASE overrides default configuration and --icase
1327 command line switch overrides every other ways to set case sen‐
1328 sitiveness behavior.
1329
1330 MODULES_IMPLICIT_DEFAULT
1331 Defines (if set to 1) or not (if set to 0) an implicit default
1332 version for modules without a default version explicitly defined
1333 (see Locating Modulefiles section in the modulefile(4) man
1334 page).
1335
1336 Without either an explicit or implicit default version defined a
1337 module must be fully qualified (version should be specified in
1338 addition to its name) to get:
1339
1340 • targeted by module load, switch, display, help, test and path
1341 sub-commands.
1342
1343 • restored from a collection, unless already loaded in collec‐
1344 tion-specified order.
1345
1346 • automatically loaded by automated module handling mechanisms
1347 (see MODULES_AUTO_HANDLING section) when declared as module
1348 requirement, with prereq or module load modulefile commands.
1349
1350 An error is returned in the above situations if either no ex‐
1351 plicit or implicit default version is defined.
1352
1353 This environment variable supersedes the value of the configura‐
1354 tion option implicit_default set in modulecmd.tcl script. This
1355 environment variable is ignored if implicit_default has been de‐
1356 clared locked in locked_configs configuration option.
1357
1358 MODULES_IMPLICIT_REQUIREMENT
1359 Defines (if set to 1) or not (if set to 0) an implicit prereq or
1360 conflict requirement onto modules specified respectively on mod‐
1361 ule load or module unload commands in modulefile. When enabled
1362 an implicit conflict requirement onto switched-off module and a
1363 prereq requirement onto switched-on module are also defined for
1364 module switch commands used in modulefile.
1365
1366 This environment variable supersedes the value of the configura‐
1367 tion option implicit_requirement set in modulecmd.tcl script.
1368 MODULES_IMPLICIT_REQUIREMENT is in turn superseded by the
1369 --not-req option that applies to a module command in a module‐
1370 file.
1371
1372 MODULES_LIST_OUTPUT
1373 A colon separated list of the elements to report in addition to
1374 module names on list sub-command regular output mode.
1375
1376 Accepted elements that can be set in value list are:
1377
1378 • header: sentence to introduce the list of loaded modules or to
1379 state that no modules are loaded currently.
1380
1381 • idx: index position of each loaded module.
1382
1383 • key: legend appended at the end of the output to explain it.
1384
1385 • sym: symbolic versions associated with loaded modules.
1386
1387 • tag: tags associated with loaded modules.
1388
1389 The order of the elements in the list does not matter. Module
1390 names are the only content reported when LIST is set to an empty
1391 value.
1392
1393 list sub-command regular output content is defined in the fol‐
1394 lowing order of preference: --output/-o command line switches,
1395 then MODULES_LIST_OUTPUT environment variable, then the default
1396 set in modulecmd.tcl script configuration. Which means
1397 MODULES_LIST_OUTPUT overrides default configuration and
1398 --output/-o command line switches override every other ways to
1399 configure regular output content.
1400
1401 MODULES_LIST_TERSE_OUTPUT
1402 A colon separated list of the elements to report in addition to
1403 module names on list sub-command terse output mode.
1404
1405 See MODULES_LIST_OUTPUT to get the accepted elements that can be
1406 set in value list.
1407
1408 The order of the elements in the list does not matter. Module
1409 names are the only content reported when LIST is set to an empty
1410 value.
1411
1412 list sub-command regular output content is defined in the fol‐
1413 lowing order of preference: --output/-o command line switches,
1414 then MODULES_LIST_TERSE_OUTPUT environment variable, then the
1415 default set in modulecmd.tcl script configuration. Which means
1416 MODULES_LIST_TERSE_OUTPUT overrides default configuration and
1417 --output/-o command line switches override every other ways to
1418 configure regular output content.
1419
1420 MODULES_LMALTNAME
1421 A colon separated list of the alternative names set through mod‐
1422 ule-version and module-alias statements corresponding to all
1423 loaded modulefiles. Each element in this list starts by the name
1424 of the loaded modulefile followed by all alternative names re‐
1425 solving to it. The loaded modulefile and its alternative names
1426 are separated by the ampersand character.
1427
1428 Each alternative name stored in MODULES_LMALTNAME is prefixed by
1429 the al| string if it corresponds to a module alias or prefixed
1430 by the as| string if it corresponds to an automatic version sym‐
1431 bol. These prefixes help to distinguish the different kind of
1432 alternative name.
1433
1434 This environment variable is intended for module command inter‐
1435 nal use to get knowledge of the alternative names matching
1436 loaded modulefiles in order to keep environment consistent when
1437 conflicts or pre-requirements are set over these alternative
1438 designations. It also helps to find a match after modulefiles
1439 being loaded when unload, is-loaded or info-loaded actions are
1440 run over these names.
1441
1442 Starting version 4.7 of Modules, MODULES_LMALTNAME is also used
1443 on list sub-command to report the symbolic versions associated
1444 with the loaded modules.
1445
1446 MODULES_LMCONFLICT
1447 A colon separated list of the conflict statements defined by all
1448 loaded modulefiles. Each element in this list starts by the name
1449 of the loaded modulefile declaring the conflict followed by the
1450 name of all modulefiles it declares a conflict with. These
1451 loaded modulefiles and conflicting modulefile names are sepa‐
1452 rated by the ampersand character.
1453
1454 This environment variable is intended for module command inter‐
1455 nal use to get knowledge of the conflicts declared by the loaded
1456 modulefiles in order to keep environment consistent when a con‐
1457 flicting module is asked for load afterward.
1458
1459 MODULES_LMNOTUASKED
1460 A colon separated list of all loaded modulefiles that were not
1461 explicitly asked for load from the command-line.
1462
1463 This environment variable is intended for module command inter‐
1464 nal use to distinguish the modulefiles that have been loaded au‐
1465 tomatically from modulefiles that have been asked by users.
1466
1467 MODULES_LMPREREQ
1468 A colon separated list of the prereq statements defined by all
1469 loaded modulefiles. Each element in this list starts by the name
1470 of the loaded modulefile declaring the pre-requirement followed
1471 by the name of all modulefiles it declares a prereq with. These
1472 loaded modulefiles and pre-required modulefile names are sepa‐
1473 rated by the ampersand character. When a prereq statement is
1474 composed of multiple modulefiles, these modulefile names are
1475 separated by the pipe character.
1476
1477 This environment variable is intended for module command inter‐
1478 nal use to get knowledge of the pre-requirement declared by the
1479 loaded modulefiles in order to keep environment consistent when
1480 a pre-required module is asked for unload afterward.
1481
1482 MODULES_LMSOURCESH
1483 A colon separated list of the source-sh statements defined by
1484 all loaded modulefiles. Each element in this list starts by the
1485 name of the loaded modulefile declaring the environment changes
1486 made by the evaluation of source-sh scripts. This name is fol‐
1487 lowed by each source-sh statement call and corresponding result
1488 achieved in modulefile. The loaded modulefile name and each
1489 source-sh statement description are separated by the ampersand
1490 character. The source-sh statement call and each resulting mod‐
1491 ulefile command (corresponding to the environment changes done
1492 by sourced script) are separated by the pipe character.
1493
1494 This environment variable is intended for module command inter‐
1495 nal use to get knowledge of the modulefile commands applied for
1496 each source-sh command when loading the modulefile. In order to
1497 reverse these modulefile commands when modulefile is unloaded to
1498 undo the environment changes.
1499
1500 MODULES_LMTAG
1501 A colon separated list of the tags corresponding to all loaded
1502 modulefiles that have been set through module-tag statements or
1503 from other modulefile statements like module-forbid (that may
1504 apply the nearly-forbidden tag in specific situation) (see
1505 Module tags section). Each element in this list starts by the
1506 name of the loaded modulefile followed by all tags applying to
1507 it. The loaded modulefile and its tags are separated by the am‐
1508 persand character.
1509
1510 This environment variable is intended for module command inter‐
1511 nal use to get knowledge of the tags applying to loaded module‐
1512 files in order to report these tags on subcmd:list sub-command
1513 output or to apply specific behavior when unloading modulefile.
1514
1515 MODULES_MCOOKIE_VERSION_CHECK
1516 If set to 1, the version set in the Modules magic cookie in mod‐
1517 ulefile is checked against the current version of modulecmd.tcl
1518 to determine if the modulefile can be evaluated.
1519
1520 MODULES_ML
1521 If set to 1, define ml command when initializing Modules (see
1522 Package Initialization section). If set to 0, ml command is not
1523 defined.
1524
1525 ml command enablement is defined in the following order of pref‐
1526 erence: MODULES_ML environment variable then the default set in
1527 modulecmd.tcl script configuration. Which means MODULES_ML over‐
1528 rides default configuration.
1529
1530 MODULES_NEARLY_FORBIDDEN_DAYS
1531 Number of days a module is considered nearly forbidden prior
1532 reaching its expiry date set by module-forbid modulefile com‐
1533 mand. When a nearly forbidden module is evaluated a warning mes‐
1534 sage is issued to inform module will soon be forbidden. If set
1535 to 0, modules will never be considered nearly forbidden. Ac‐
1536 cepted values are integers comprised between 0 and 365.
1537
1538 This configuration is defined in the following order of prefer‐
1539 ence: MODULES_NEARLY_FORBIDDEN_DAYS environment variable then
1540 the default set in modulecmd.tcl script configuration. Which
1541 means MODULES_NEARLY_FORBIDDEN_DAYS overrides default configura‐
1542 tion.
1543
1544 MODULES_PAGER
1545 Text viewer for use to paginate message output if error output
1546 stream is attached to a terminal. The value of this variable is
1547 composed of a pager command name or path eventually followed by
1548 command-line options.
1549
1550 Paging command and options are defined for Modules in the fol‐
1551 lowing order of preference: MODULES_PAGER environment variable,
1552 then the default set in modulecmd.tcl script configuration.
1553 Which means MODULES_PAGER overrides default configuration.
1554
1555 If MODULES_PAGER variable is set to an empty string or to the
1556 value cat, pager will not be launched.
1557
1558 MODULES_RUN_QUARANTINE
1559 A space separated list of environment variable names that should
1560 be passed indirectly to modulecmd.tcl to protect its run-time
1561 environment from side-effect coming from their current defini‐
1562 tion.
1563
1564 Each variable found in MODULES_RUN_QUARANTINE will have its
1565 value emptied or set to the value of the corresponding
1566 MODULES_RUNENV_<VAR> variable when defining modulecmd.tcl
1567 run-time environment.
1568
1569 Original values of these environment variables set in quarantine
1570 are passed to modulecmd.tcl via <VAR>_modquar variables.
1571
1572 MODULES_RUNENV_<VAR>
1573 Value to set to environment variable <VAR> for modulecmd.tcl
1574 run-time execution if <VAR> is referred in
1575 MODULES_RUN_QUARANTINE.
1576
1577 MODULES_SEARCH_MATCH
1578 When searching for modules with avail sub-command, defines the
1579 way query string should match against available module names.
1580 With starts_with value, returned modules are those whose name
1581 begins by search query string. When set to contains, any modules
1582 whose fully qualified name contains search query string are re‐
1583 turned.
1584
1585 Module search match style is defined in the following order of
1586 preference: --starts-with and --contains command line switches,
1587 then MODULES_SEARCH_MATCH environment variable, then the default
1588 set in modulecmd.tcl script configuration. Which means
1589 MODULES_SEARCH_MATCH overrides default configuration and
1590 --starts-with/--contains command line switches override every
1591 other ways to set search match style.
1592
1593 MODULES_SET_SHELL_STARTUP
1594 If set to 1, defines when module command initializes the shell
1595 startup file to ensure that the module command is still defined
1596 in sub-shells. Setting shell startup file means defining the ENV
1597 and BASH_ENV environment variable to the Modules bourne shell
1598 initialization script. If set to 0, shell startup file is not
1599 defined.
1600
1601 MODULES_SHELLS_WITH_KSH_FPATH
1602 A list of shell on which the FPATH environment variable should
1603 be defined at initialization time to point to the ksh-functions
1604 directory where the ksh initialization script for module command
1605 is located. It enables for the listed shells to get module
1606 function defined when starting ksh as sub-shell from there.
1607
1608 Accepted values are a list of shell among sh, bash, csh, tcsh
1609 and fish separated by colon character (:).
1610
1611 MODULES_SILENT_SHELL_DEBUG
1612 If set to 1, disable any xtrace or verbose debugging property
1613 set on current shell session for the duration of either the mod‐
1614 ule command or the module shell initialization script. Only ap‐
1615 plies to Bourne Shell (sh) and its derivatives.
1616
1617 MODULES_SITECONFIG
1618 Location of a site-specific configuration script to source into
1619 modulecmd.tcl. See also Modulecmd startup section.
1620
1621 This environment variable is ignored if extra_siteconfig has
1622 been declared locked in locked_configs configuration option.
1623
1624 MODULES_TAG_ABBREV
1625 Specifies the abbreviation strings used to report module tags
1626 (see Module tags section). Its value is a colon-separated list
1627 of module tag names associated to an abbreviation string (e.g.
1628 tagname=abbrev).
1629
1630 If a tag is associated to an empty string abbreviation, this tag
1631 will not be reported. In case the whole MODULES_TAG_ABBREV envi‐
1632 ronment variable is set to an empty string, tags are reported
1633 but not abbreviated.
1634
1635 The tag abbreviation definition set in MODULES_TAG_ABBREV envi‐
1636 ronment variable supersedes the default configuration set in
1637 modulecmd.tcl script.
1638
1639 MODULES_TAG_COLOR_NAME
1640 Specifies the tag names or abbreviations whose graphical render‐
1641 ing should be applied over themselves instead of being applied
1642 over the name of the module they are attached to. Value of
1643 MODULES_TAG_COLOR_NAME is a colon-separated list of module tag
1644 names or abbreviation strings (see Module tags section).
1645
1646 When a select graphic rendition is defined for a tag name or a
1647 tag abbreviation string, it is applied over the module name as‐
1648 sociated with the tag and tag name or abbreviation is not dis‐
1649 played. When listed in MODULES_TAG_COLOR_NAME environment vari‐
1650 able, a tag name or abbreviation is displayed and select graphic
1651 rendition is applied over it.
1652
1653 The definition set in MODULES_TAG_COLOR_NAME environment vari‐
1654 able supersedes the default configuration set in modulecmd.tcl
1655 script.
1656
1657 MODULES_TERM_BACKGROUND
1658 Inform Modules of the terminal background color to determine if
1659 the color set for dark background or the color set for light
1660 background should be used to color output in case no specific
1661 color set is defined with the MODULES_COLORS variable. Accepted
1662 values are dark and light.
1663
1664 MODULES_TERM_WIDTH
1665 Specifies the number of columns of the output. If set to 0, the
1666 output width will be the full terminal width, which is automati‐
1667 cally detected by the module command. Accepted values are inte‐
1668 gers comprised between 0 and 1000.
1669
1670 This configuration is defined in the following order of prefer‐
1671 ence: --width or -w command line switches, then
1672 MODULES_TERM_WIDTH environment variable, then the default set in
1673 modulecmd.tcl script configuration. Which means
1674 MODULES_TERM_WIDTH overrides default configuration. --width or
1675 -w command line switches override every other configuration.
1676
1677 MODULES_UNLOAD_MATCH_ORDER
1678 When a module unload request matches multiple loaded modules,
1679 unload firstly loaded module or lastly loaded module. Accepted
1680 values are returnfirst and returnlast.
1681
1682 MODULES_USE_COMPAT_VERSION
1683 If set to 1 prior to Modules package initialization, enable Mod‐
1684 ules compatibility version (3.2 release branch) rather main ver‐
1685 sion at initialization scripts running time. Modules package
1686 compatibility version should be installed along with main ver‐
1687 sion for this environment variable to have any effect.
1688
1689 MODULES_VERBOSITY
1690 Defines the verbosity level of the module command. Available
1691 verbosity levels from the least to the most verbose are:
1692
1693 • silent: turn off error, warning and informational messages but
1694 does not affect module command output result.
1695
1696 • concise: enable error and warning messages but disable infor‐
1697 mational messages.
1698
1699 • normal: turn on informational messages, like a report of the
1700 additional module evaluations triggered by loading or unload‐
1701 ing modules, aborted evaluation issues or a report of each
1702 module evaluation occurring during a restore or source
1703 sub-commands.
1704
1705 • verbose: add additional informational messages, like a system‐
1706 atic report of the loading or unloading module evaluations.
1707
1708 • verbose2: report loading or unloading module evaluations of
1709 hidden-loaded modules, report if loading module is already
1710 loaded or if unloading module is not loaded.
1711
1712 • trace: provide details on module searches, resolutions, selec‐
1713 tions and evaluations.
1714
1715 • debug: print debugging messages about module command execu‐
1716 tion.
1717
1718 • debug2: report modulecmd.tcl procedure calls in addition to
1719 printing debug messages.
1720
1721 Module command verbosity is defined in the following order of
1722 preference: --silent, --verbose, --debug and --trace command
1723 line switches, then MODULES_VERBOSITY environment variable, then
1724 the default set in modulecmd.tcl script configuration. Which
1725 means MODULES_VERBOSITY overrides default configuration and
1726 --silent/--verbose/--debug/--trace command line switches over‐
1727 rides every other ways to set verbosity level.
1728
1729 MODULES_WA_277
1730 If set to 1 prior to Modules package initialization, enables
1731 workaround for Tcsh history issue (see
1732 https://github.com/cea-hpc/modules/issues/277). This issue
1733 leads to erroneous history entries under Tcsh shell. When work‐
1734 around is enabled, an alternative module alias is defined which
1735 fixes the history mechanism issue. However the alternative defi‐
1736 nition of the module alias weakens shell evaluation of the code
1737 produced by modulefiles. Characters with a special meaning for
1738 Tcsh shell (like { and }) may not be used anymore in shell alias
1739 definition otherwise the evaluation of the code produced by mod‐
1740 ulefiles will return a syntax error.
1741
1742 MODULESHOME
1743 The location of the main Modules package file directory contain‐
1744 ing module command initialization scripts, the executable pro‐
1745 gram modulecmd.tcl, and a directory containing a collection of
1746 main modulefiles.
1747
1748 <VAR>_modquar
1749 Value of environment variable <VAR> passed to modulecmd.tcl in
1750 order to restore <VAR> to this value once started.
1751
1752 <VAR>_modshare
1753 Reference counter variable for path-like variable <VAR>. A colon
1754 separated list containing pairs of elements. A pair is formed by
1755 a path element followed its usage counter which represents the
1756 number of times this path has been enabled in variable <VAR>. A
1757 colon separates the two parts of the pair.
1758
1760 /usr/share/Modules
1761 The MODULESHOME directory.
1762
1763 /etc/environment-modules/siteconfig.tcl
1764 The site-specific configuration script of modulecmd.tcl. An addi‐
1765 tional configuration script could be defined using the
1766 MODULES_SITECONFIG environment variable.
1767
1768 /etc/environment-modules/rc
1769 The system-wide modules rc file. The location of this file can be
1770 changed using the MODULERCFILE environment variable as described
1771 above.
1772
1773 $HOME/.modulerc
1774 The user specific modules rc file.
1775
1776 $HOME/.module
1777 The user specific collection directory.
1778
1779 /usr/share/Modules/modulefiles
1780 The directory for system-wide modulefiles. The location of the di‐
1781 rectory can be changed using the MODULEPATH environment variable as
1782 described above.
1783
1784 /usr/share/Modules/libexec/modulecmd.tcl
1785 The modulefile interpreter that gets executed upon each invocation
1786 of module.
1787
1788 /usr/share/Modules/init/<shell>
1789 The Modules package initialization file sourced into the user's en‐
1790 vironment.
1791
1793 ml(1), modulefile(4)
1794
1796 1996-1999 John L. Furlani & Peter W. Osel, 1998-2017 R.K.Owen,
1797 2002-2004 Mark Lakata, 2004-2017 Kent Mein, 2016-2021 Xavier Delaruelle
1798
1799
1800
1801
18024.7.1 2021-04-06 MODULE(1)