linux中module工具的使用介绍

1.module简介
module是一个专门管理环境变量的工具,全程是module environment,一般应用于软件或运行库等设备有多个版本,且需要分别配置这些环境变量。

2.module工具的官网
module官网https://modules.readthedocs.io/en/latest/index.html

3.module的安装
Moudle工具是基于TCL(8.4以上版本)工具的。Moudle工具可以使用二进制编译安装,也可以使用yum/apt快速安装,
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工具了。不过在bin目录下,是没有module这个命令的。

4.module的初始化
安装module工具后,你会发现它并不是一个可执行的二进制文件,你需要对module工具进行一次初始化。
在/usr/share/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/tools/modules/init/profile.sh  /etc/profile.d/module.sh
ln -s /usr/local/tools/modules/init/profile.csh /etc/profile.d/module.csh
1
2
不过如果使用which module,会发现找不到module命令。

5.Moudle工具的使用
Module工具依托于MODULEPATH这个环境变量来查找配置信息目录,也就是说你在设置好目录结构,配置好环境变量后,只需要设置这一个module的环境变量,那么module工具就会自动去查找这个路径下的所有配置信息。export MODULEPATH=/opt/modulefiles
例如这个工具文件modulefiles放在了/opt下面,编写的modulefiles文件放在目录/opt/modulefils/gcc/4.8.4和/opt/modulefiles/gcc/4.9.7下。

6.modulefiles文件编写
以下是 modulefiles目录下的 modules文件,我们后面实现的工具配置文件,都是基于这个文件进行修改。千万不要出现软件名和版本一样的modulefile。

#%Module1.0#####################################################################
##                                                  //#%Module1.0 这个是识别这个文件为modulefile的,没有他这个文件不会被识别。
## modules modulefile
##                                                                            

proc ModulesHelp { } {                              //proc:帮助文件,可以要,也可以不要
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 /usr/local/tools/modules                 //设置变量
setenv MODULESHOME $prefix                          //设置环境变量:这个命令会把你需要的环境变量配置到系统中
prepend-path PATH /usr/local/tools/modules/bin      //必须:这个命令会把工具路径添加到环境变量的前面
prepend-path MANPATH /uer/local/tools/modules/share/man

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
要注意的是,$env(PROJ_SRC_ROOT),是获取环境变量 PROJ_SRC_ROOT 的值。

6.module基本命令

module avail/ava                 //显示可以使用的模块
module list                      //显示已经加载的模块
module load/add gcc/4.8.4        //加载模块AAA
module unload/rm gcc/4.8.4       //卸载模块
module purge                     //取消所有加载的工具
module show gcc/8.4.4            //来查看相应配置信息
1
2
3
4
5
6
注意:由于moudle只能载入同类工具、库的某一个版本,删除的时候就直接说明删除的工具、库就可以了,后面不需要带版本号。

/home # module show gcc/4.8.4
/soft/gcc/4.8.4:

setenv        GCC_HOME        /soft/gcc/4.8.4
prepend-path  PATH /soft/gcc/4.8.4/bin
1
2
3
4
5
7.默认版本
在module avail中,我们可以设置默认版本,例如我想将gcc 4.9.3设置为默认版本,当我module load gcc的时候,就直接载入4.9.3版本,我们可以用.version文件来控制这个默认信息。
在/opt/modulefile/gcc目录下创建.version文件,看清楚,前面有个点,写法如下:

#%Module1.0
set ModulesVersion "4.9.3"
1
2
用module ava查看时在4.9.3版本后面多了一个(default)。

8.全局控制
由于module的特性问题,如果在公司内使用,你可能需要所有的使用人员设置一个统一的初始脚本,无论是bash还是csh,通常我们建议建立一个用户可读的统一脚本文件,然后link到每个使用人员的家目录下的初始脚本。
例如我们建立为csh建立一个统一的csh.cshrc文件。Link给zhangsan
ln -s csh.cshrc /home/zhangsan/.cshrc
我们可以在统一的初始脚本中加入source ./cshrc.own
那么用户只需要在家目录创建一个cshrc.own的文件所谓个性化脚本文件即可。
————————————————
版权声明:本文为CSDN博主「Alfred.HOO」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Michael177/article/details/121152904

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
I. 简介 1. 简介 如何构建一个 LFS 系统? 与上一版本有何不同? 更新日志 资源 帮助 II. 构建前的准备工作 2. 准备一个新分区 简介 创建一个新分区 在新分区上创建文件系统 挂载新分区 3. 软件包和补丁 简介 全部软件包 需要的补丁 4. 最后的准备工作 关于环境变量 $LFS 创建 $LFS/tools 目录 添加 LFS 用户 设置工作环境 关于 SBU 关于软件包测试套件 5. 构建临时编译环境 简介 工具链技术说明 Binutils-2.16.1 - 第一遍 GCC-4.0.3 - 第一遍 Linux-Libc-Headers-2.6.12.0 Glibc-2.3.6 调整工具链 Tcl-8.4.13 Expect-5.43.0 DejaGNU-1.4.4 GCC-4.0.3 - 第二遍 Binutils-2.16.1 - 第二遍 Ncurses-5.5 Bash-3.1 Bzip2-1.0.3 Coreutils-5.96 Diffutils-2.8.1 Findutils-4.2.27 Gawk-3.1.5 Gettext-0.14.5 Grep-2.5.1a Gzip-1.3.5 M4-1.4.4 Make-3.80 Patch-2.5.4 Perl-5.8.8 Sed-4.1.5 Tar-1.15.1 Texinfo-4.8 Util-linux-2.12r 清理系统 改变所有者 III. 构建 LFS 系统 第六章 安装系统基础软件 简介 挂载虚拟内核文件系统 包管理 进入 Chroot 环境 创建系统目录结构 创建必需的文件与符号连接 Linux-Libc-Headers-2.6.12.0 Man-pages-2.34 Glibc-2.3.6 再次调整工具链 Binutils-2.16.1 GCC-4.0.3 Berkeley DB-4.4.20 Coreutils-5.96 Iana-Etc-2.10 M4-1.4.4 Bison-2.2 Ncurses-5.5 Procps-3.2.6 Sed-4.1.5 Libtool-1.5.22 Perl-5.8.8 Readline-5.1 Zlib-1.2.3 Autoconf-2.59 Automake-1.9.6 Bash-3.1 Bzip2-1.0.3 Diffutils-2.8.1 E2fsprogs-1.39 File-4.17 Findutils-4.2.27 Flex-2.5.33 GRUB-0.97 Gawk-3.1.5 Gettext-0.14.5 Grep-2.5.1a Groff-1.18.1.1 Gzip-1.3.5 Inetutils-1.4.2 IPRoute2-2.6.16-060323 Kbd-1.12 Less-394 Make-3.80 Man-DB-2.4.3 Mktemp-1.5 Module-Init-Tools-3.2.2 Patch-2.5.4 Psmisc-22.2 Shadow-4.0.15 Sysklogd-1.4.1 Sysvinit-2.86 Tar-1.15.1 Texinfo-4.8 Udev-096 Util-linux-2.12r Vim-7.0 关于调试符号 再次清理系统 最终的清理 7. 配置系统启动脚本 简介 LFS-Bootscripts-6.2 启动脚本是如何工作的? LFS 系统的设备和模块处理 配置 setclock 脚本 配置 Linux 控制台 配置 sysklogd 脚本 创建 /etc/inputrc 文件 Bash Shell 启动文件 配置 localnet 脚本 定制 /etc/hosts 文件 为设备创建惯用符号连接 配置网络脚本 8. 使 LFS 系统能够启动 简介 创建 /etc/fstab 文件 Linux-2.6.16.27 使 LFS 系统能够启动 9. 结束 结束 看看你是第几个? 重启系统 现在做什么?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值