我正在尝试编写一系列modulefiles
可用于在集群设置中加载安装在每个用户帐户下的软件。由于该软件是在类似的路径下按人安装的,直到用户名发生变化,我试图在模块文件中动态设置基本路径值。
例如,如果我可以使用绝对路径,那么我会这样设置BASEPATH
:
#%Module1.0#####################################################################
##
## libevent 2.1.11
set app libevent
set version 2.1.11
module-whatis "loads the necessary `$app-$version' library paths"
set BASEPATH /usr/local/packages/dev/$app/$version
prepend-path LD_LIBRARY_PATH $BASEPATH/lib
prepend-path LD_RUN_PATH $BASEPATH/lib
prepend-path --delim " " LDFLAGS "-L$BASEPATH/lib"
prepend-path --delim " " CPPFLAGS "-I$BASEPATH/include"
prepend-path --delim " " CFLAGS "-I$BASEPATH/include"
但是,就我而言,我需要的BASEPATH
变量是:
set BASEPATH /home/${USER}/software/$app/$version
where$USER
将扩展到当前用户名。
不幸的是,在加载模块时,我收到:
libevent/2.1.11(15):ERROR:102: Tcl command execution failed:
set BASEPATH /home/${USER}/software/$app/$version