繁体   English   中英

Modulefile-调用模块卸载时的模块加载

[英]Modulefile - Module loading when module unload is called

因此,我正在尝试让模块文件在加载模块文件时动态加载/卸载。 我正在尝试以某种方式执行此操作,以便卸载冲突的模块(而不是仅使用冲突变量,因为它只会引发错误)

但是,当我在试图卸载另一个文件的文件上调用模块加载时...第二个文件已加载而不是卸载。 示例如下:

test1模块文件:

#%Module1.0
##
## Testing
##
if { [module-info mode load] && [is-loaded test2] } {
        puts stderr "Unloading test2 (From test1)"
        module unload test2
}

test2模块文件:

#%Module1.0
##
## Test2
##
if { [module-info mode load] } {
        puts stderr "Loading test2\n"
}

if { [module-info mode remove] } {
        puts stderr "Unloading test2\n"
}

当我尝试在加载test2的同时加载test1时的输出:

root@host:/usr/local/modules# module load test1
Unloading test2 (From test1)
Loading test2

模块--version输出:

VERSION=3.2.10
DATE=2012-12-21

AUTOLOADPATH=undef
BASEPREFIX="/usr"
BEGINENV=99
CACHE_AVAIL=undef
DEF_COLLATE_BY_NUMBER=undef
DOT_EXT=""
EVAL_ALIAS=1
HAS_BOURNE_FUNCS=1
HAS_BOURNE_ALIAS=1
HAS_TCLXLIBS=undef
HAS_X11LIBS=1
LMSPLIT_SIZE=1000
MODULEPATH="/usr/share/modules/modulefiles"
MODULES_INIT_DIR="/usr/Modules/3.2.10/init"
PREFIX="/usr/Modules/3.2.10"
TCL_VERSION="8.6"
TCL_PATCH_LEVEL="8.6.1"
TMP_DIR="/tmp"
USE_FREE=undef
VERSION_MAGIC=1
VERSIONPATH="/usr/share/modules/versions"
WANTS_VERSIONING=1
WITH_DEBUG_INFO=undef

有谁知道为什么或如何解决这个问题? 我可以在Modulefile中放入另一个命令来卸载另一个模块吗? 还是有更好的替代方法来使用模块?

在此先感谢您的阅读和帮助!

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

例如,在最近的Fedora系统上,可获得以下例外行为:

$ module -V
Modules Release 4.1.3 (2018-06-18)
$ module load test2
Loading test2

$ module list
Currently Loaded Modulefiles:
 1) test2
$ module load test1
Unloading test2 (From test1)
Unloading test2

$ module list
Currently Loaded Modulefiles:
 1) test1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM