点击上方 "程序员小乐"关注, 星标或置顶一起成长

每天凌晨00点00分, 第一时间与你相约

每日英文

Never get stuck with the thing that ruins your day. be happy; for life is too short to be wasted on crap.

不要让不好的事情毁了你这一天,开心一点,生命如此短暂,别浪费时间在不值一提的事情上。

每日掏心

你的智慧和体力要卖给出价最高的人,但永远不要给自己的灵魂和人格出价。

来自:不方便说 | 责编:乐乐

链接:my.oschina.net/u/3059462/blog/3211342

程序员小乐(ID:study_tech)第 825 次推文   图片来自百度

往日回顾:老外在预测 5 种将死的编程语言!

     

   正文   

一、前言

在Linux中,当同一款编辑器、运行库、软件存在多个版本且多个版本都需要在不同的场景或人员使用时,配置这些内容的环境变量是一个非常繁琐的过程,而Moudle工具则提供了一个简单快速的方法,Moudle全称为module-environment,是一个专门管理环境变量的工具。

二、官网

Moudle官网:https://modules.readthedocs.io/en/latest/module.html

三、安装

Moudle工具是基于TCL(8.4以上版本)工具的,目前module工具为4.4.1,基于tcl8.5或更高版本,而module3.X版本则基于tcl8.4版本,Redhat6系列yum安装的tcl为8.5版本。

Moudle工具可以使用二进制编译安装,也可以使用yum/apt快速安装,

Redhat/Centos使用:yum install environment-modules;

ubuntu等使用:apt-get install environment-modules安装。

四、初始化

安装module工具后,你会发现它并不是一个可执行的二进制文件,你需要对module工具进行一次初始化。在/usr/share/modules/init(注意此处,可能是module也可能是modules)内部你可以找到针对各个脚本的二进制初始化文件,找到你当前的脚本,source这个二进制文件,例如你是bash脚本,source /usr/share/modules/init/bash之后,你就可以使用module工具了。

五、常用命令(通过命令你可以看出我为什么module和modules傻傻不分了)

module avail显示可以使用的模块

module load/add 加载模块

module unload/rm卸载模块

module list显示已经加载的模块

在整个module都配置好后,这四个命令基本上可以满足所有的使用要求,而module的更多详细命令和使用方法,我们会在以后的文章中说明。

六、Moudle工具的使用

Module工具依托于MODULEPATH这个环境变量来查找配置信息目录,也就是说你在设置好目录结构,配置好环境变量后,只需要设置这一个module的环境变量,那么module工具就会自动去查找这个路径下的所有配置信息。

七、Moudlefile的写法

在第六节我们说了MODULEPATH的作用,那么这节我们讲述一下modulefile也就是配置文件的目录结构和写法。

通常我们会将同一类的软件、库等内容放在同一个目录,假设目录名为/soft,在soft目录下包含gcc、python、java等常用工具,而gcc又包含4.8.4、4.9.3、4.9.7三个版本,python包含2.7、3.6两个版本、java包含1.6、1.7、1.8三个版本,那么它的目录结构如下:

那么soft目录即为MODULEPATH变量设置的目录,最后面的版本文件为modulefile,我们只需要安装这种目录格式创建目录和文件即可。

在编写modulefile文件时的几个注意事项,例如我要编写4.8.4这个文件,注意,这个文件时gcc4.8.4的环境变量配置文件,不是gcc的存放路径。它必须是一个文件、而不是一个文件夹。

  1. 在文件开头一定要写上

#%Module1.0

这个是识别这个文件为modulefile的,没有他这个文件不会被识别

2、prepend-path要修改的环境变量 路径

这个命令会把工具路径添加到环境变量的前面

3、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都没有问题,只要软件/工具等存放的路径没有问题,那么即可正常使用。

八、多路径

MODULEPATH可以设置为多个路径,例如我设置/soft、/soft1、/soft2都是工具、软件等脚本的存放路径,那么我就可以设置MODULEPATH为多个路径,路径之间用冒号分割。

这时候我们module avail来查看信息,即可看到如下

注意:千万不要出现软件名和版本一样的modulefile

九、默认版本

在module avail中,我们可以设置默认版本,例如我想将gcc 4.9.3设置为默认版本,当我module load gcc的时候,就直接载入4.9.3版本,我们可以使用.version文件来控制这个默认信息。

在modulefile同级目录下创建.version文件,看清楚,前面有个点,写法如下

#%Module1.0

set ModulesVersion "4.9.3"

使用module avail查看信息

在4.9.3版本后面多了一个(default)

删除我们刚才载入的4.8.4

载入默认的gcc版本

注意:由于moudle只能载入同类工具、库的某一个版本,删除的时候就直接说明删除的工具、库就可以了,后面不需要带版本号。

十、全局使用

由于module的特性问题,如果在公司内使用,你可能需要所有的使用人员设置一个统一的初始脚本,无论是bash还是csh,通常我们建议建立一个用户可读的统一脚本文件,然后link到每个使用人员的家目录下的初始脚本。

例如我们建立为csh建立一个统一的csh.cshrc文件。Link给zhangsan

ln -s csh.cshrc /home/zhangsan/.cshrc

我们可以在统一的初始脚本中加入source ./cshrc.own

那么用户只需要在家目录创建一个cshrc.own的文件所谓个性化脚本文件即可。

欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。

欢迎各位读者加入订阅号程序员小乐技术群,在后台回复“加群”或者“学习”即可。

猜你还想看

阿里、腾讯、百度、华为、京东最新面试题汇集

如何更好的使用Java异常,看这篇就对了!

互联网后端基础设施,看了都说好!

(三)SpringBoot+SpringCloud —— 高可用的Eureka注册中心

关注订阅号「程序员小乐」,收看更多精彩内容

嘿,你在看吗

Linux下Moudle工具的介绍与使用相关推荐

  1. Linux网络常用工具分类介绍

    Linux网络命令较多,单纯的介绍网络命令的用法也没什么意思.本文将常见的网络命令进行分类,并做出思维导图,对每个分类的命令选择性的介绍其作用.常见选项和用法举例.BTW,不建议记住所有命令,了解一下 ...

  2. 利用Linux下DDOS工具tfn2k进行DDOS攻击试验

    "Tribe Flood Network 2000 (TFN2K)是一款分布式拒绝服务(DDOS)的攻击工具.TFN2K是由德国著名黑客Mixter编写的同类攻击工具TFN的后续版本.本文将 ...

  3. 详解linux下auto工具制作Makefile源码包(制作篇)

    2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一.     概述 为了更好的制作configure ...

  4. linux cpu uuid 查看,Linux下查看UUID方法介绍

    Linux下查看UUID方法介绍. 1. sudo blkid /dev/sda1: UUID="9ADAAB4DDAAB250B" TYPE="ntfs" / ...

  5. 实验 Linux下C工具应用

    实验报告 实 验(一) 题     目 Linux下C工具应用 专       业 计算机科学与技术 计算机科学与技术学院 目  录 第1章 实验基本信息... - 4 - 1.1 实验目的... - ...

  6. 万得终端 linux安装,Linux下常用工具

    Linux下常用工具: yuv rgba playerubuntu 18.04 wps1 2sudo dpkg -i wps-office_10.1.0.5672~a21_amd64.deb sudo ...

  7. 模仿实现Linux下readelf工具部分功能

    模仿实现Linux下 readelfreadelfreadelf 工具部分功能 完整实现: https://github.com/JiaZhengJingXianSheng/ReadELF ELF 目 ...

  8. Linux下抓图工具shutter

    Linux下抓图工具shutter 转载于:https://www.cnblogs.com/zhangze/archive/2013/06/07/3123558.html

  9. Linux 下的 /proc 目录介绍

    Linux 下的 /proc 目录介绍 目录 Linux 下的 /proc 目录介绍 1./proc 目录包含的文件及其作用 2./proc 目录包含的子目录及其内容 (1)/proc/bus (2) ...

最新文章

  1. 【计算机网络】网络安全 : 数据加密模型 ( 加密模型 | 密钥 | 密码学 | 密码安全 )
  2. 第四范式亮相世界智能大会 共探智能发展下人才培养路径
  3. 算法训练营07-递归使用练习
  4. linux传输文件scp自动接密码,配置scp在Linux或Unix之间传输文件无需密码
  5. python多线程下载器_用 python 实现一个多线程网页下载器
  6. java 多层异常_Java多层嵌套异常处理的基本流程
  7. mysql组合索引与字段顺序
  8. LeetCode62 Unique Paths
  9. Q-Learning算法学习
  10. 【仿某公司前台】 asp安全查询系统
  11. 基于channel的goroutine
  12. Debugging a Create React App with VS Code
  13. android studio 融云SDK集成
  14. 51单片机用三种方法实现流水灯(超详细)
  15. Dell服务器重装系统
  16. 新浪微博热门话题(30 分)(字符串)
  17. linux生成checksum,SF2281修改Lic授权ID生成新checksum生成器
  18. 聊聊你不知道的Java变量转型
  19. MVC、MVCS、MTV、MVP框架模式
  20. 对于同源与非同源的理解

热门文章

  1. Mac Mounty挂载NTFS硬盘报错
  2. 魅族开机卡flyme转圈圈
  3. 工业交换机SFP口和Combo口有什么不同?
  4. selenium3 设置浏览器安装的位置
  5. Troubleshooting: WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!
  6. Java Swing教程(基础)
  7. 阴阳师双小小黑通关真八岐大蛇攻略——附式神配置和打法
  8. 按Right-BICEP的测试用例
  9. t3插密码狗不显示服务器,登陆T3时,用户名和账套都不显示,显示没有检测到合法的LISENCE,需要重新注册密码狗,在注册社区后,搜索.cjt的文件,搜不到...
  10. Excel表格模板打包下载┆收集了各类各行业Excel表格、word模板