module

软件安装到自定义的目录后,并不能直接使用,需要将软件的可执行文件路径等添加到对应的环境变量后才能使用。module则是一款环境变量管理工具,通过module实现软件环境变量的管理,快速加载和切换软件环境。集群安装了常用的一些软件和库,可通过module进行加载使用。

首先介绍module常见的一些指令;接着介绍几个module的几个使用案例;最后介绍如何编写modulefile来管理自己的软件环境。

首先介绍module常见的一些指令;

module help       # 显示帮助信息
module avail      # 显示已经安装的软件环境
module load       # 导入相应的软件环境
module unload     # 删除相应的软件环境
module list       # 列出已经导入的软件环境
module purge      # 清除所有已经导入的软件环境
module switch [mod1] mod2 # 删除mod1并导入mod2

接着介绍几个module的使用例子;

查看集群现有软件活库;

module avail

查看集群可用的matlab版本;

module avail matlab

导入matlab/R2017a软件环境;

module load matlab/R2017a

清除所有通过module导入的软件环境;

module purge

最后介绍如何编写modulefile来管理自己的软件环境。

自己编译安装的软件也可以通过module来进行管理,步骤为:先创建目录用来存放自己的modulefile;然后在创建好的目录下编写modulefile;

首先,创建目录用来存放自己的modulefile;

mkdir ${HOME}/mymodulefiles   # 创建目录用于放自己的module file
echo "export MODULEPATH=${HOME}/mymodulefiles:\$MODULEPATH" >> ~/.bashrc
source ~/.bashrc # 或者退出重新登录即可
# 编写自己的第一个module file
cd ${HOME}/mymodulefiles
vim myfirstmodulefile

然后在创建好的目录下编写modulefile,假设在/share/home/test/soft/gcc/7.2.0安装了gcc编译器,则可以这么编写modulefile;

#%Module1.0
##
##
module-whatis "my first modulefile"

set topdir "/share/home/test/soft/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了

下为编写modulefile文件常见的语法;

set           # 设置modulefile内部的变量
setenv        # 设置环境变量
prepend-path  # 效果类似于export PATH=xxx:$PATH
append-path   # 效果类似export PATH=$PATH:xxx

results matching ""

    No results matching ""