1

したがって、モジュールファイルをロードするときにモジュールファイルを動的にロード/アンロードしようとしています。競合するモジュールをアンロードできるようにこれを実行しようとしています (エラーをスローするだけで競合変数を使用するのではなく)

ただし、別のファイルをアンロードしようとする 1 つのファイルでモジュール ロードを呼び出すと、2 番目のファイルがアンロードされずにロードされます。以下に例を示します。

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 に入れることができる別のコマンドはありますか? または、モジュールを使用するより良い代替手段はありますか?

読んで助けてくれてありがとう!

4

1 に答える 1