工学系で成熟した分野では,オープンソースの数値モデルの利用が進んでいる.そのようなモデルは大抵Linuxでの利用を前提に開発されているが,設計思想はモデルごとに大きく異なる.特に,各モデルが紐づけているライブラリをきちんと管理しないと,競合が容易に起こる(netCDFとかAnacondaに紐づいたPythonとか).
これを避けるための最も簡単な手段は,モデルごとにユーザーを変えてしまうことである(WSLなら同一ディストロをモデルごとに複製するなども有効だろう,明らかにdockerよりも使い勝手が良い).これは個人用PCならともかく,共用の計算サーバーでは進んでやりたくはない.
そこで,私は自分のPCでは~/.bashrcに記述する環境設定は最小限のものにし,モデルごとの環境設定を個別のshファイルにまとめ,これをエイリアスで呼び出すようにしている.何を言っているかわからないと思うが,たとえば,model1_envs.shというファイルに,
export hogehoge
export fugafuga
export piyopiyo
export PS1='\[\e[33m(model1)\] \[\e[32m\u@\h\] \[\e[34m\w\] \[\e[0m\]$ '
として,~/.bashrcには
alias model1="source <full-path>/model1_envs.sh"
と書く.ターミナルからmodel1と入力すれば,model1_envs.shに書いた環境設定が全部読み込まれる.
最後の行(export PS1=)は,ターミナルのログイン情報にどのモデルをアクティベートしているかを表示する設定.このページが参考になるが,”\[\]
“が一組抜けているために改行時におかしな挙動をする.上記を参考にしてほしい.