2016-04-19 7 views
0

環境モジュールパッケージは、ユーザの環境を動的に変更するために使用されます(debianパッケージenvironment-modules)。sshコマンドラインで環境モジュールを使用するには?

私はをsshコマンドラインから直接使用したいと思います。目的は、フロントノードで実行されるbashスクリプトから異なるノード上でコマンドを実行できるようにすることです。私は、異なるノード構成ごとにPATHLD_LIBRARY_PATHの環境変数を明示的に更新したくありません。私が直接ノードに接続し、ノードからmoduleを呼び出すと

、それは明らかに取り組んでいる:

jyvet> ssh mynode 
[email protected]> module load gcc-6.0 
[email protected]> gcc --version 
gcc (GCC) 6.0.1 

しかし、次のアプローチは失敗します。

jyvet> ssh mynode "module load gcc-6.0; gcc --version" 
command not found: module 
gcc-4.8 (Debian 4.8.4-1) 4.8.4 

答えて

1

module/etc/profile.d/modules.shそれによって初期化されます/etc/profile(これはシェルの起動時に環境変数を設定します)によって呼び出されます。

sshコマンド実行シェルは、非対話型シェルであり、/etc/profileを呼び出すことも、設定ファイルを読み込むこともありません。

ここは、ソリューションです:

jyvet> ssh mynode "source /etc/profile; module load gcc-6.0; gcc --version" 
gcc (GCC) 6.0.1 
1

ログインしながら、自動的に-ed /etc/profile.d/modules.shsourceになるように、あなたはまた、bashのログインインスタンスを呼び出すことができます。

ssh mynode "bash -lc 'module load gcc-6.0; gcc --version'" 
関連する問題