环境变量管理工具Modules的安装
一、软件依赖tcl软件
(1)tcl下载地址:http://www.tcl-lang.org/software/tcltk/(2)编译安装
cd unix/ ./configure --prefix=/usr/local/tcl (apt install tcl tcl-dev)
二、编译安装modules软件
(1)下载地址: https://modules.sourceforge.net/(2)解压安装:(apt-get install environment-modules)
tar -zxvf modules-5.2.0.tar.gz ./configure --prefix=/usr/local/modules-5.2.0 ./configure --prefix=/usr/local/modules --with-tcl-lib=/usr/local/tcl/lib \ --with-tcl-inc=/usr/local/tcl/include
三、 module的初始化
安装module工具后,你会发现它并不是一个可执行的二进制文件,你需要对module工具进行一次初始化。在/usr/local/modules/init(注意此处,可能是module也可能是modules)内部你可以找到针对各个脚本的二进制初始化文件,有profile.sh和profile.csh文件,用来配置module的脚本文件。如果当前用的shell是bash,就使用profile.sh,如果当前用的shell是cshell,就使用profile.csh。可以直接source这个文件,也可以打开/etc/profile文件,加入source /usr/llocal/tools/modules/init/profile.sh这一行代码。重启终端,使用module -h,就可以打印module命令的help了。
也可以建立符号链接,这样当系统重启后,会自动加载
ln -s /usr/local/modules/init/profile.sh /etc/profile.d/module.sh ln -s /usr/local/modules/init/profile.csh /etc/profile.d/module.csh
四、常用命令
(通过命令你可以看出我为什么module和modules傻傻不分了)module avail 显示可以使用的模块 module load/add 加载模块 module unload/rm 卸载模块 module list 显示已经加载的模块 module show 来查看相应配置信息 module switch gcc gcc/10 切换到模块的不同版本
五、modulefiles文件编写
以下是/usr/local/modules/modulefiles目录下的modules文件,我们后面实现的工具配置文件,都是基于这个文件进行的修改。千万不要出现软件名和版本一样的modulefile文件。![](https://img2024.cnblogs.com/blog/2173981/202401/2173981-20240127152814160-803278375.png)
例如gcc环境变量的添加
cd /usr/local/modules/modulefiles/gcc || vim 4.8.4
![](https://img2024.cnblogs.com/blog/2173981/202401/2173981-20240127152614148-485440908.png)
![](https://img2024.cnblogs.com/blog/2173981/202401/2173981-20240127152814009-788325301.png)
set version 4.8.4 set GCC /usr/xu_apps/gcc-4.8.4 setenv MODULESHOME ${GCC} prepend-path PATH ${GCC}/bin prepend-path LD_LIBRARY_PATH ${GCC}/lib64 prepend-path LD_LIBRARY_PATH ${GCC}/lib prepend-path INCLUDE ${GCC}/include
六、默认版本
在module avail中,我们可以设置默认版本,例如我想将gcc 4.9.3设置为默认版本,当我module load gcc的时候,就直接载入4.9.3版本,我们可以使用.version文件来控制这个默认信息。在modulefile同级目录下创建.version文件,看清楚,前面有个点,写法如下:
cd /etc/modulefiles/gcc
vim .version
#%Module1.0 set ModulesVersion "4.9.3"
![](https://img2024.cnblogs.com/blog/2173981/202401/2173981-20240127144500584-1369146760.png)
在4.8.4版本后面多了一个(default)
七、多路径设置
(1)Module工具依托于MODULEPATH这个环境变量来查找配置信息目录。MODULEPATH可以设置为多个路径,例如我设置/soft、/soft1、/soft2都是工具、软件等脚本的存放路径,那么我就可以设置MODULEPATH为多个路径,路径之间用冒号分割。export MODULEPATH=/soft:/soft1:/soft2
![](https://img2024.cnblogs.com/blog/2173981/202401/2173981-20240127145550288-698982777.png)
(2)yum install environment-modules
默认的的modulefiles路径设置在/usr/share/Modules/init/.modulespath文件中。也可以在这个文件中添加设置为多个路径,而不用配置MODULEPATH这个环境变量。
![](https://img2024.cnblogs.com/blog/2173981/202401/2173981-20240127151453355-1226140582.png)
【注意】:modulefiles路径设置后,路径下一定要有例如gcc/4.8.4的文件;要不然module avail会什么都不显示。