这是写给生、化、环、材做计算模拟的硕士、博士新生看的. Linux运维大佬请绕道看别的去吧.
其实Environment Module是非常不错的方案, 即使不会tcl语言, 照着范例改改也能解决问题. 那么问题在于, 如果系统本来就没有预装module模块呢? 而且, 你就是一个普通用户呢?
以下提供一种, 在Linux计算平台上, 不需要root权限, 自己维护和配置多种软件环境的简单且有效方案.
一个简单例子.
比如是要g09.d01算某某性质; 而后使用g09.e01再算XX性质, 而后使用g16计算激发态频率.
如果采用愚蠢的~/.bashrc来配置, 可能某些大聪明会告诉你, 搞三个用户ID, 每个ID启用一个版本的软件. 然后呢, 你又没有root权限, 添加不了用户, 然后就死循环了....
一个简单的做法如下:
清空~/.bashrc任何自定义软件的设定. 使用下面一个简单的SHELL脚本来运行你的计算.
#!/bin/bash
# run with g09d01
source /path/to/script/enable_g09d01.sh
g09 input.com
wait
# run with g09e01
source /path/to/script/enable_g09e01.sh
g09 input-XX.com
wait
# run with g16C01
source /path/to/script/enable_g16c01.sh
g16 another_input.com
wait
echo "done"
#EOF
至于enable_g16c01.sh文件内容, 当然是把原来写在~/.bashrc文件中的相关内容抄写在这里呀. 这应该比配置module要简单很多的.
再比如, ORCA 4.2.1 需要OpenMPI 3.1.4; ORCA 5.0.3 需要OpenMPI 4.1, 也可以采用类似的方案来处理呀.
即使有root权限, 也勿使用/etc/profile做全局设定, 除非这个机器就你一个人使用, 就用一个版本的软件.
更多信息, 看这里的讨论:
cp2k-8.2编译 - 第一性原理 (First Principle) - 计算化学公社 - 第2页http://bbs.keinsci.com/thread-23579-2-1.html