版本管理工具-Module

描述

如果一个服务器中某个工具有多个版本,如果全写在bashrc中,可能就会造成配置混乱且不好管理。有没有什么好的办法解决呢,有的,那就是Module这个工具。Module是一个简化 shell 初始化的工具,可以很方便的管理环境。更多可见官网

官方介绍中使用的源码安装,安装在/usr/share/Modules,配置文件在/etc/modulefiles。安装完后在/etc/profile中加入下面一行

source /usr/local/Modules/init/profile.sh

这样每次启动terminal时就可以直接使用module命令了。

配置

在安装完后,已经可以使用module了,下一步就是需要为不同的工具设置配置文件了。以vcs为例,假如服务器安装了两个版本的vcs,分别为vcs-mx_vl_2016.06和vcs-mx_o-2018.09-SP2。首先在配置文件目录下(/etc/modufiles)新建一个文件夹,名称随意,假设为vcs-mx。

mkdir /etc/modulefiles/vcs

然后在/etc/modulefiles/vcs-mx/下新建2个文件,名称随意,假设为vl_2016.06和o-2018.09-SP2

touch /etc/modulefiles/vcs-mx/vl_2016.06
touch /etc/modulefiles/vcs-mx/o-2018.09-SP2

接着在vl_2016.06中填写下面的内容

#%Module1.0#####################################################################
##
## use.own modulefile
##
proc ModulesHelp { } {
    puts stderr "\tThis module file will add \$HOME/privatemodules to the"
    puts stderr "\tlist of directories that the module command will search"
    puts stderr "\tfor modules.  Place your own module files here."
    puts stderr "\tThis module, when loaded, will create this directory"
    puts stderr "\tif necessary."
}

module-whatis   "adds your own modulefiles directory to MODULEPATH"

eval set  [ array get env HOME ]
set ownmoddir   $HOME/privatemodules
setenv version 2016.06

# create directory if necessary
if [ module-info mode load ] {
    if { ! [ file exists $ownmoddir ] } {
        file mkdir $ownmoddir
        set null [open $ownmoddir/null w]
        puts $null "#%Module########################################################################"
        puts $null "##"
        puts $null "## null modulefile"
        puts $null "##"
        puts $null "proc ModulesHelp { } {"
        puts $null "    puts stderr \"\tThis module does absolutely nothing.\""
        puts $null "    puts stderr \"\tIt's meant simply as a place holder in your\""
        puts $null "    puts stderr \"\tdot file initialization.\""
        puts $null "}"
        puts $null ""
        puts $null "module-whatis   \"does absolutely nothing\""
    }
}

module use --append $ownmoddir

# set enviroment variable
prepend-path PATH /opt/synopsys/vcs-mx_vL_2016.06/bin
prepend-path PATH /opt/synopsys/vcs-mx_vL_2016.06/gui/dve/bin
prepend-path VCS_HOME  /opt/synopsys/vcs-mx_vL_2016.06
prepend-path VCS_ARCH_OVERRIDE linux

里面比较关键的分别为:

  • setenv version 2016.06 用于设置版本
  • prepend-path PATH xx 用于将xx加入到环境变量PATH中,这样就可以直接访问vcs等命令
  • 以及vcs过程中需要用到的一些变量如VCS_HOME,VCS_ARCH_OVERRIDE

另外一个配置文件o-2018.09-SP2的写法也类似,需要注意是的其中的路径要做相应的更改。至此,配置文件也设置好,然后就可以使用了。比如可以用module av vcs-mx查看可以使用的vcs-mx版本

vcs-mx版本

module load vcs-mx/vl_2016.06加载此vcs版本,然后就可以正常的使用了。

如果需要加载vcs的其它版本,需要先使用module unload来卸载当前使用的版本,以免造成不预期的行为

常用命令

  • module listmodule li : 列出当前已加载的module
  • module availmodule av : 查看所有可用的工具
    • module av x : 查看工具 x 可用的版本
  • module add xmodule load x : 加载工具 x
    • module load x/y : 加载版本号为y的工具x
  • module rm xmodule unload x : 卸载工具 x
    • module unload x/y : 卸载版本号为y的工具x
  • module show x : 显示工具x的配置文件
    • module show x/y : 显示版本号为y的工具x的配置文件
  • module swap a bmodule switch a b : 将模块a替换为模块b
  • module purge : 卸载所有模块
如有任何问题,欢饮共同探讨
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇