1、前言html
在Linux中,当同一款编辑器、运行库、软件存在多个版本且多个版本都须要在不一样的场景或人员使用时,配置这些内容的环境变量是一个很是繁琐的过程,而Moudle工具则提供了一个简单快速的方法,Moudle全称为module-environment,是一个专门管理环境变量的工具。java
2、官网python
Moudle官网:https://modules.readthedocs.io/en/latest/module.htmlubuntu
3、安装bash
Moudle工具是基于TCL(8.4以上版本)工具的,目前module工具为4.4.1,基于tcl8.5或更高版本,而module3.X版本则基于tcl8.4版本,Redhat6系列yum安装的tcl为8.5版本。app
Moudle工具可使用二进制编译安装,也可使用yum/apt快速安装,编辑器
Redhat/Centos使用:yum install environment-modules;ide
ubuntu等使用:apt-get install environment-modules安装。工具
4、初始化spa
安装module工具后,你会发现它并非一个可执行的二进制文件,你须要对module工具进行一次初始化。在/usr/share/modules/init(注意此处,多是module也多是modules)内部你能够找到针对各个脚本的二进制初始化文件,找到你当前的脚本,source这个二进制文件,例如你是bash脚本,source /usr/share/modules/init/bash以后,你就可使用module工具了。
5、经常使用命令(经过命令你能够看出我为何module和modules傻傻不分了)
module avail显示可使用的模块
module load/add 加载模块
module unload/rm卸载模块
module list显示已经加载的模块
在整个module都配置好后,这四个命令基本上能够知足全部的使用要求,而module的更多详细命令和使用方法,咱们会在之后的文章中说明。
6、Moudle工具的使用
Module工具依托于MODULEPATH这个环境变量来查找配置信息目录,也就是说你在设置好目录结构,配置好环境变量后,只须要设置这一个module的环境变量,那么module工具就会自动去查找这个路径下的全部配置信息。
7、Moudlefile的写法
在第六节咱们说了MODULEPATH的做用,那么这节咱们讲述一下modulefile也就是配置文件的目录结构和写法。
一般咱们会将同一类的软件、库等内容放在同一个目录,假设目录名为/soft,在soft目录下包含gcc、python、java等经常使用工具,而gcc又包含4.8.四、4.9.三、4.9.7三个版本,python包含2.七、3.6两个版本、java包含1.六、1.七、1.8三个版本,那么它的目录结构以下:
那么soft目录即为MODULEPATH变量设置的目录,最后面的版本文件为modulefile,咱们只须要安装这种目录格式建立目录和文件便可。
在编写modulefile文件时的几个注意事项,例如我要编写4.8.4这个文件,注意,这个文件时gcc4.8.4的环境变量配置文件,不是gcc的存放路径。它必须是一个文件、而不是一个文件夹。
在文件开头必定要写上
#%Module1.0
这个是识别这个文件为modulefile的,没有他这个文件不会被识别
二、prepend-path要修改的环境变量 路径
这个命令会把工具路径添加到环境变量的前面
三、setenv 环境变量名 值
这个命令会把你须要的环境变量配置到系统中
请看如下示例:gcc/4.8.4 (这个工具我安装在/software/gcc/4.8.4/下)
#%Module1.0
setenv GCC_HOME /software/gcc/4.8.4/
prepend-path PATH /software/gcc/4.8.4/bin
这就是一个gcc4.8.4的环境变量配置,咱们将全部的环境变量配置好以后,使用modue avail命令便可查看到相应信息,以下所示:
使用module load 载入相应的工具和版本
使用module list查看载入的工具和版本
使用module show 工具/版本 来查看相应配置信息(很是用命令)
这时候咱们能够echo $PATH来查看是否将gcc路径添加到了PATH路径中
使用echo $GCC_HOME查看是否已经设置好此环境变量
这时候表明你的目录设置、modulefile都没有问题,只要软件/工具等存放的路径没有问题,那么便可正常使用。
8、多路径
MODULEPATH能够设置为多个路径,例如我设置/soft、/soft一、/soft2都是工具、软件等脚本的存放路径,那么我就能够设置MODULEPATH为多个路径,路径之间用冒号分割。
这时候咱们module avail来查看信息,便可看到以下
注意:千万不要出现软件名和版本同样的modulefile
9、默认版本
在module avail中,咱们能够设置默认版本,例如我想将gcc 4.9.3设置为默认版本,当我module load gcc的时候,就直接载入4.9.3版本,咱们可使用.version文件来控制这个默认信息。郑州不孕不育医院哪家好:http://jbk.39.net/yiyuanfengcai/tsyl_zztjyy/988/
在modulefile同级目录下建立.version文件,看清楚,前面有个点,写法以下
#%Module1.0
set ModulesVersion "4.9.3"
使用module avail查看信息
在4.9.3版本后面多了一个(default)
删除咱们刚才载入的4.8.4
载入默认的gcc版本
注意:因为moudle只能载入同类工具、库的某一个版本,删除的时候就直接说明删除的工具、库就能够了,后面不须要带版本号。
10、全局使用
因为module的特性问题,若是在公司内使用,你可能须要全部的使用人员设置一个统一的初始脚本,不管是bash仍是csh,一般咱们建议创建一个用户可读的统一脚本文件,而后link到每一个使用人员的家目录下的初始脚本。
郑州人工授精医院:http://rgsj.zzfkyy120.com/