这是写给生、化、环、材做计算模拟的硕士、博士新生看的. 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
本文针对没有root权限的Linux计算平台用户,介绍了一种简单有效的自维护软件环境管理方法。通过编写和运行shell脚本,用户可以在不同计算任务中切换不同版本的软件,如g09和g16,而无需修改~/.bashrc或创建多个用户ID。这种方法特别适合需要在不同软件版本间切换的计算模拟场景,如化学和材料科学的计算。此外,还提到了如何处理不同软件对OpenMPI版本的需求。
114

被折叠的 条评论
为什么被折叠?



