环境模块的 loading/unloading 是可交换的/可结合的吗?
Is loading/unloading of environment modules commutative / associative?
我正在使用环境模块:http://modules.sourceforge.net/
load/unload 命令是可交换的还是结合的?
或者,是否有可能,例如如果我做
load X
load Y
结果会和我做的不一样
load Y
其次是
load X
?
我可以将这些命令引起的 "state" 视为加载了哪些模块的列表吗?或者这些命令的顺序重要吗?
模块文件加载顺序很重要。例如,模块文件 X
和 Y
可以通过在其前面添加或附加路径元素来更改相同的环境变量。
如果 modulefile X
将 /path/to/directoryX
前置到 PATH
变量并且 modulefile Y
将 /path/to/directoryY
前置到 PATH
,加载 X
那么 Y
将优先于 /path/to/directoryY
目录中的二进制文件(因为此目录将是 PATH
变量中的第一个元素)而不是 /path/to/directoryX
中的二进制文件。当先加载 Y
然后 X
时,优先级将转到 /path/to/directoryX
.
中的二进制文件
如果在两个目录中都有一个名为 foo
的二进制文件可用,则在本例中最后加载的模块的目录中调用时会找到它。
为了帮助遇到这种情况的用户,模块文件可以表达依赖关系以确保其他模块文件先于它们加载(预先要求,prereq
)或确保其他模块文件在加载时不加载(conflict
).
我正在使用环境模块:http://modules.sourceforge.net/
load/unload 命令是可交换的还是结合的?
或者,是否有可能,例如如果我做
load X
load Y
结果会和我做的不一样
load Y
其次是
load X
?
我可以将这些命令引起的 "state" 视为加载了哪些模块的列表吗?或者这些命令的顺序重要吗?
模块文件加载顺序很重要。例如,模块文件 X
和 Y
可以通过在其前面添加或附加路径元素来更改相同的环境变量。
如果 modulefile X
将 /path/to/directoryX
前置到 PATH
变量并且 modulefile Y
将 /path/to/directoryY
前置到 PATH
,加载 X
那么 Y
将优先于 /path/to/directoryY
目录中的二进制文件(因为此目录将是 PATH
变量中的第一个元素)而不是 /path/to/directoryX
中的二进制文件。当先加载 Y
然后 X
时,优先级将转到 /path/to/directoryX
.
如果在两个目录中都有一个名为 foo
的二进制文件可用,则在本例中最后加载的模块的目录中调用时会找到它。
为了帮助遇到这种情况的用户,模块文件可以表达依赖关系以确保其他模块文件先于它们加载(预先要求,prereq
)或确保其他模块文件在加载时不加载(conflict
).