EnvironmentModulesを実際に使用するに当たって、PATH環境変数らの遷移を確認してみる

ログイン直後のbash/tcsh(csh)のパスは下記となっている(CentOS7.6)

bash
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/$USER/.local/bin:/home/$USER/bin
 
tcsh(csh)
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

仮に Relion-3.0-beta-2 のmodulefile が下記として

#%Module1.0
 
prepend-path PATH            /Appl/relion-3.0-beta-2/bin
prepend-path PATH            /usr/lib64/openmpi/bin
prepend-path LD_LIBRARY_PATH /usr/lib64/openmpi/lib

そして、eman2.22 のmodulefile が下記とした場合、

#%Module1.0
 
prepend-path PATH            /Appl/eman2.22/bin

先に Relion をmoduleコマンドでloadして、それからEMAN2をloadすると mpirun はEMAN2由来に限定されてしまう。

[saber@c ~]$ module load relion/3.0-beta-2
[saber@c ~]$ module load eman2/2.22
[saber@c ~]$ which mpirun
/Appl/eman2.22/bin/mpirun
[saber@c ~]$

全体のPATHから見ると下記になる。

[saber@c  ~]$ echo $PATH
/Appl/eman2.22/bin:/usr/lib64/openmpi/bin:/Appl/relion-3.0-beta-2/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
[saber@c ~]$

「prepend-path」を使用しているから仕方ないのだが、逆にappend-pathで環境変数の末尾につけるとOS提供のpythonが使われる。
この辺は難しい。
単に、アプリ毎にmoduleをloadさせればいいのかな?って思っている。

なら再度relionをロードすれば..と思えるが、既にあるのでloadしてくれないです。
結局は eman2/2.22 をunload させればOKとなる。

最新の60件
2026-05-16 2026-05-13 2026-05-12 2026-05-11 2026-05-08 2026-05-06 2026-05-05 2026-05-04 2026-05-03 2026-04-30 2026-04-29 2026-04-28 2026-04-27 2026-04-25 2026-04-24 2026-04-22 2026-04-21 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14 2026-03-13 2026-03-07 2026-03-06 2026-03-04 2026-03-02 2026-02-26 2026-02-24 2026-02-21 2026-02-18 2026-02-17 2026-02-16 2026-02-11

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-02-16 (日) 00:24:14