Linux下Moudle工具的介紹與使用


一、前言

  在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的文件所謂個性化腳本文件即可。

--END--


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM