0

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
4

1 に答える 1