Environment Modules
是一种管理 Unix
或 Linux shell
环境的工具,它允许动态地设置或删除相关的环境变量。
安装
yum install -y environment-modules
help
$ module --help
Modules Release 3.2.10 2012-12-21 (Copyright GNU GPL v2 1991):
Usage: module [ switches ] [ subcommand ] [subcommand-args ]
Switches:
-H|--help this usage info
-V|--version modules version & configuration options
-f|--force force active dependency resolution
-t|--terse terse format avail and list format
-l|--long long format avail and list format
-h|--human readable format avail and list format
-v|--verbose enable verbose messages
-s|--silent disable verbose messages
-c|--create create caches for avail and apropos
-i|--icase case insensitive
-u|--userlvl <lvl> set user level to (nov[ice],exp[ert],adv[anced])
Available SubCommands and Args:
+ add|load modulefile [modulefile ...]
+ rm|unload modulefile [modulefile ...]
+ switch|swap [modulefile1] modulefile2
+ display|show modulefile [modulefile ...]
+ avail [modulefile [modulefile ...]]
+ use [-a|--append] dir [dir ...]
+ unuse dir [dir ...]
+ update
+ refresh
+ purge
+ list
+ clear
+ help [modulefile [modulefile ...]]
+ whatis [modulefile [modulefile ...]]
+ apropos|keyword string
+ initadd modulefile [modulefile ...]
+ initprepend modulefile [modulefile ...]
+ initrm modulefile [modulefile ...]
+ initswitch modulefile1 modulefile2
+ initlist
+ initclear
常用命令
- module avail # 列出所有可用模块文件
- module –debug=1 [av|avail] # debug 模式列出
$ module avail
------------------------------------------- /usr/share/Modules/modulefiles -------------------------------------------
dot module-git module-info modules null use.own
- module load module-git # 加载模块文件/类
- module list # 显示已经加载的模块
- module unload module-git # 卸载模块文件/类
添加新 modulefiles
初始化 modulefiles
和 apps
目录:
echo "/opt/Modules/modulefiles" >> /usr/share/Modules/init/.modulespath
添加后,重启会通过 /etc/profile.d/modules.sh
调用 /usr/share/Modules/init/bash
,加载 /usr/share/Modules/init/.modulespath
配置到环境变量 MODULEPATH
中。
添加新 module
以 LAMMPS
为例,LAMMPS
提供了元素周期表中原子对应的经验势函数,可进行与实际体系对应的分子动力学模拟,例如计算金属铝的晶格常数,或水的密度,得到与实验吻合的结果。
wget https://download.lammps.org/tars/lammps-stable.tar.gz
yum install -y cmake
tar -zxvf lammps-stable.tar.gz
cd lammps-29Oct20/
mkdir build; cd build
cmake -D CMAKE_INSTALL_PREFIX=/opt/Modules/apps/lammps/29Oct20/ ../cmake
# cmake -D CMAKE_INSTALL_PREFIX=/opt/Modules/apps/lammps/29Oct20/ -D BUILD_MPI=yes -D BUILD_OMP=yes -D PKG_MANYBODY=yes ../cmake/ # 更多参数参考 cmake/CMakeLists.txt
make
make install
- /opt/Modules/modulefiles/lammps/29Oct20
#%Module -*- tcl -*-
proc ModulesHelp { } {
puts stderr "This module loads the lammps utility"
puts stderr "\nVersion 2020.10\n"
}
# 显示 module whatis 显示主要内容
module-whatis "Name: lammps"
module-whatis "Version: 2020.10"
module-whatis "URL https://www.lammps.org/"
# module 加载前需要模块类,没有加载会报错
#prereq <module_flag>
# module 加载冲突模块类
#conflict <another_module_flag>
# 加载其他模块
#module load gcc
# 设置环境变量
set version 2020.10
# 添加环境变量
append-path PATH /opt/Modules/apps/lammps/29Oct20/bin/
#append-path MANPATH /opt/Modules/apps/lammps/29Oct20/man
#append-path LD_LIBRARY_PATH /opt/Modules/apps/lammps/29Oct20/lib
[root@xiexianbin_cn ~]# module avail
------------------------------------------- /usr/share/Modules/modulefiles -------------------------------------------
dot module-git module-info modules null use.own
---------------------------------------------- /opt/Modules/modulefiles ----------------------------------------------
lammps/29Oct20
[root@xiexianbin_cn ~]# module load lammps/29Oct20
[root@xiexianbin_cn ~]# lmp
LAMMPS (29 Oct 2020)
扩展