Module使用
module 则是一款 LInux 下软件环境变量的管理工具,通过 module 实现软件环境变量的管理,快速加载和切换软件环境。平台上预安装了部分常见软件,通过 module 进行加载。
module 常见指令
下面是 module 的一些常见指令:
module help # 显示帮助信息
module avail # 显示平台上已经安装的软件环境
module load # 加载指定的软件环境
module unload # 取消加载指定的软件环境
module list # 列出已经导入的软件环境
module purge # 清除所有已经加载的软件环境
module switch [mod1] mod2 # 取消加载 mod1 的同时加载 mod2
module 使用例子
查看集群现有软件
查看集群可用 matlab 版本
加载 matlab/R2017a
清除当前通过 module 加载的环境
module 管理自己安装的软件环境
自己编译安装的软件也可以通过 module 来进行管理,步骤如下:
1. 创建目录用来存放自己的 modulefile
将下面的内容添加到 ~/.bashrc 文件中
执行 source ~/.bashrc
或者退出重新登录即可
2. 编写 modulefile
打开刚刚创建好的,用于 modulefile 的目录
在创建好的目录下编写 modulefile,假设在路径 ${HOME}/software/gcc/7.2.0
中安装了 7.2.0 版本的 GCC 编译器,则可以这么编写名为 gcc-7.2.0
的 modulefile;
gcc-7.2.0
#%Module1.0
##
##
module-whatis gcc@7.2.0"
set topdir "${HOME}/software/gcc/7.2.0"
prepend-path PATH "${topdir}/bin"
prepend-path LIBRARY_PATH "${topdir}/lib"
prepend-path LD_LIBRARY_PATH "${topdir}/lib"
prepend-path LIBRARY_PATH "${topdir}/lib64"
prepend-path LD_LIBRARY_PATH "${topdir}/lib64"
prepend-path CPATH "${topdir}/include"
prepend-path CMAKE_PREFIX_PATH "${topdir}"
setenv CC "${topdir}/bin/gcc"
setenv CXX "${topdir}/bin/g++"
setenv FC "${topdir}/bin/gfortran"
setenv F77 "${topdir}/bin/gfortran"
setenv F90 "${topdir}/bin/gfortran"
编写好后执行 module avail
就可查看到刚刚写好的 modulefile,并通过 module 加载使用自己的软件环境了。
编写 modulefile 语法
下为编写 modulefile 文件常见的语法;
set # 设置 modulefile 内部环境变量
setenv # 设置环境变量
prepend-path # 效果类似于export PATH=xxx:$PATH
append-path # 效果类似export PATH=$PATH:xxx
有些软件安装完后,通过 source xxx.sh
的方式导入环境变量,可以这么写 modulefile ,如 intel parallel studio
set scriptpath "/lustre/software/intel/2018.1/compilers_and_libraries_2018.1.163/linux/bin"
switch -- [module-info shelltype] {
sh {
source-sh bash $scriptpath/compilervars.sh intel64
}
csh {
source-sh tcsh $scriptpath/compilervars.csh intel64
}
}
append-path INTEL_LICENSE_FILE "/lustre/software/intel_parallel_studio/licenses"