it-swarm-ja.com

環境モジュール:TCLを初期化できません

CentOS6クラスターでpython-2.7.10モジュールを作成しようとしています。私の単純なpython-2.7.10モジュールファイルは次のとおりです。

#%Module1.0
prepend-path PATH /gpfs0/export/opt/anaconda-2.3.0/bin 
prepend-path MANPATH /gpfs0/export/opt/anaconda-2.3.0/share
prepend-path LD_LIBRARY_PATH /gpfs0/export/opt/anaconda-2.3.0/lib
set-alias python /gpfs0/export/opt/anaconda-2.3.0/bin/python
set-alias python2.7 /gpfs0/export/opt/anaconda-2.3.0/bin/python

モジュールをロードすると、たとえば.

module load python-2.7.10 

python2.7は正常に動作します。ただし、module listまたはmodule availまたはmodule unload python-2.7.10を実行しようとすると

エラーが発生します

init.c(556):ERROR:161: Cannot initialize TCL

ただし、octave-4.0.0モジュールを試してみると:

#%Module1.0
prepend-path PATH /gpfs0/export/opt/octave-4.0.0/bin 
prepend-path MANPATH /gpfs0/export/opt/octave-4.0.0/share
prepend-path LD_LIBRARY_PATH /gpfs0/export/opt/octave-4.0.0/lib
set-alias octave /gpfs0/export/opt/octave-4.0.0/bin/octave-4.0.0 
set-alias octave-gui /gpfs0/export/opt/octave-4.0.0/bin/octave-4.0.0 
set-alias octave-cli /gpfs0/export/opt/octave-4.0.0/bin/octave-cli-4.0.0

module listmodule availmodule unload octave-4.0.0は問題なくできます。明らかに、私のpython-2.7.10モジュールが何かを壊しました。これを修正するにはどうすればよいですか?

明らかに、LD_LIBRARY_PATHの設定は、説明したように悪い形式です ここここ および ここ 。だから私は自分の邪悪な方法を変えてLD_LIBRARY_PATHを設定せず、私の問題は解決されました。

[〜#〜] edit [〜#〜]:この問題の根本はシステム間の違いであることが判明しました/usr/lib64/libtcl8.5.soとアナコンダの/gpfs0/export/opt/anaconda-2.3.0/lib/libtcl8.5.so。 AnacondaのtclライブラリはModulesパッケージと互換性がありません。ソリューションは同じままですが、anacondaライブラリが必要な場合は、ケースバイケースでそれらを処理する必要があります。

同じ問題が発生しました。以下のリンクからの提案を使用して、LD_LIBRARY_PATHを設定解除せずに問題を修正することができました。基本的に、実行にLD_LIBRARY_PATHを使用するmodulecmdの機能を無効にします。ただし、この変更により、modulecmdによるLD_LIBRARY_PATH変数の変更が妨げられることはありません。使用されるコマンドは次のとおりです。chownnobody:nobody modulecmd chmod ug + s modulecmd

https://sourceforge.net/p/modules/mailman/message/27952351/

1
Randall Smith