linux module工具安装与使用

linux中的环境变量管理,让人烦不胜烦。但是有了module这个开源的环境变量管理工具,就让linux中的环境变量管理变得容易。
以下链接,是module工具的介绍:https://modules.readthedocs.io/en/latest/index.html

一、安装
module工具,依赖tcl工具,因此首先要安装tcl工具。

wget https://cfhcable.dl.sourceforge.net/project/tcl/Tcl/8.5.9/tcl8.5.9-src.tar.gz
tar -zxvf tcl8.5.9-src.tar.gz
cd tcl8.5.9/unix
./configure --prefix=/usr/local/tools/tcl
make
make install

 

安装tcl之后,就可以安装module工具了。

 

wget https://newcontinuum.dl.sourceforge.net/project/modules/Modules/modules-4.2.4/modules-4.2.4.tar.gz
tar -zxvf modules-4.2.4.tar.gz
cd modules-4.2.4
./configure --prefix=/usr/local/tools/modules --with-tcl-lib=/usr/local/tools/tcl/lib --with-tcl-inc=/usr/local/tools/tcl/include 
make
make install

安装完成之后,在/usr/local/tools/modules(以下称为module根目录)目录下,就有module工具了。不过在bin目录下,是没有module这个命令的。
二、配置
因为bin目录下,没有module这个命令,因此,直接将module根目录下的bin目录,加入到PATH中,是不行的。
在 init 目录下,有 profile.sh 和 profile.csh文件,用来配置module的脚本文件。如果当前用的shell是bash,就使用profile.sh,如果当前用的shell是cshell,就使用profile.csh。
打开/etc/profile文件,加入 source /usr/llocal/tools/modules/init/profile.sh 这一行代码。重启终端,使用module -h,就可以打印module命令的help了。不过如果 which module,会发现找不到module命令。
也可以建立符号链接,这样当系统重启后,会自动加载

ln -s /usr/local/tools/modules/init/profile.sh /etc/profile.d/module.sh
ln -s /usr/local/tools/modules/init/profile.csh /etc/profile.d/module.csh

 使用module ava,可以获取当前系统,可以使用的工具。不过因为,还没有编写工具配置文件,因此显示的工具为空。

linux module工具安装与使用

 

 

三、编写modulefiles文件
module工具,根据modulefile文件,来实现环境变量的管理。
以下是 modulefiles目录下的 modules文件,我们后面实现的工具配置文件,都是基于这个文件进行修改。

#%Module1.0#####################################################################
##
## modules modulefile
##
proc ModulesHelp { } {
global version prefix

puts stderr "\tmodules - loads the modules software & application environment"
puts stderr "\n\tThis adds $prefix/* to several of the"
puts stderr "\tenvironment variables."
puts stderr "\n\tVersion $version\n"
}

module-whatis "loads the modules environment"

# for Tcl script use only
set version 4.2.4
set prefix /home/lujun/tools/modules


setenv MODULESHOME $prefix
prepend-path PATH /home/lujun/tools/modules/bin
prepend-path MANPATH /home/lujun/tools/modules/share/man

 

下面说一下关键点:
? 最前面的几行注释,不要修改
? proc: 定义函数,可以要,也可以吧乣
? set: 设置变量
? setenv: 设置环境变量
? prepend-path: 向环境变量中,加入指定的值,加入的值,放在环境变量前面
一般使用比较多的,就是set,setenv,prepend-path,这三个语法。更多的语法,在官网有介绍:
https://modules.readthedocs.io/en/latest/modulefile.html
要注意的是,$env(PROJ_SRC_ROOT),是获取环境变量 PROJ_SRC_ROOT 的值。

 

四、使用
工具的modulefiles文件编写完毕后,module工具就会识别,此时使用module ava,就会显示,可以用的所有工具。

 linux module工具安装与使用

 

 

在modulefiles目录下,新建了 synopsys 目录,并且放置了vcs和verdi,2个配置文件。
使用 module load synopsys/verdi, 就可以加载verdi工具。
此时使用 module list可以查看,目前已经加载的工具:

linux module工具安装与使用

 

 

使用 module rm synopsys/verdi,就可以取消加载verdi工具
此时使用module list可以查看,目前已经加载的工具:

linux module工具安装与使用

 

 

如果想取消所有工具的加载,使用 module purge 命令。

 

linux module工具安装与使用

上一篇:Linux查看当前文件目录文件夹大小


下一篇:[题解]剑指 Offer 59 - II. 队列的最大值(C++)