为什么在modulefile中运行模块卸载失败?

时间:2017-07-18 17:48:16

标签: module environment modulefile

我是新手。

我发现环境模块很有意思。 请参阅以下流程。

我的linux操作系统是redhat5.8。 我已经安装了环境模块3.2.10,tcl8.6.6,

  1. 源init / csh成功。
  2. 我分别写了一个qq / {61_0,61_1,61_2}模块文件。
  3. 以qq / 61_0为例。

    productId

    我的问题是:

    1. 它不应该为同一工具qq加载多版本, 当加载另一个版本时,它应首先模块化其他版本 虽然我在modulefile中有模块卸载,但它看起来像模块卸载$ curName句子不起作用
    2. 当运行'module add qq / 61_1'时,意味着,它将首先加载qq / 61_0, 然后执行qq / 61_0 modulefile, 因为它是qq / 61_0的卸载,所以它不应该输出'load qq / 61_0'。 但它输出'加载qq / 61_0'。 为什么呢?
    3. 运行'module add qq / 61_2'时,为什么有这么多输出'完成61_0'?
    4. echo $ LMFILES 和echo $ LOADEDMODULES已证明它存在同一工具的多版本, 如何只加载一个版本?
    5. 任何人都可以帮助我吗? 提前致谢

1 个答案:

答案 0 :(得分:0)

您描述的问题来自a bug,影响了模块版本<= 3.2.10。类似于RedHat的Linux发行版上的更新的模块版本(> 3.2.10)或最新的“环境模块”软件包已解决了以下问题:

使用固定的Modules版本,您描述的过程似乎是正确的(在Fedora系统上的Modules 3.2.10和更高版本上进行了测试):

$ module add qq/61_0
loaded qq/61_0
done 61_0
$ module add qq/61_1
loaded qq/61_1
rm loaded qq
done 61_0
done 61_1
$ module list
Currently Loaded Modulefiles:
 1) qq/61_1  
$ module add qq/61_2
loaded qq/61_2
rm loaded qq
done 61_1
done 61_2
$ module list
Currently Loaded Modulefiles:
 1) qq/61_2