使proc可用于所有模块文件?

时间:2013-04-12 20:31:07

标签: linux module tcl modulefile

我使用modules来管理软件。我试图设置环境,以便可以从任何模块文件调用某个函数,而不必每个文件都必须提供proc定义。

示例:我希望util:prereq函数在以下模块文件中可用,而无需获取其定义:

#%Module1.0

util::prereq compiler_intel/13.0.1 mpi/openmpi-1.6.4_intel-13.0.1

为了做到这一点,我知道我必须挂钩到modulefiles或tcl或者什么东西。有什么想法吗?

此函数的用法类似于prereq,但该函数将加载任何先决条件而不是失败,因为它没有被加载。

1 个答案:

答案 0 :(得分:1)

比clarkw建议的更好的方法是使用旧的tclIndex文件。

此文件必须位于文件夹$auto_path或其子目录(建议的子目录)中。
您可以手动或通过调用

创建tclIndex文件
auto_mkindex directory file.tcl

再次:目录应该是$auto_path的(子)目录 如果第一次使用其中一个命令,这将获取您的tcl文件。