module-environment简单使用

  1. 前言
    在linux下当对同一个编译器、运行库等有多版本的时候,如果每次编译都要去写上绝对路径就会很麻烦,使用module-environment来进行管理这些环境变量是比较方便的。
    注:本文针对deepin介绍,如果是centos请参考:传送门
  2. 安装
    我是直接使用linux自带的官方软件源下载的
sudo apt-get install environment-modules

centos 安装

yum install -y environment-modules
  1. 介绍
    安装完成后,会默认在/usr/share/Module目录下产生一系列文件夹,其中init中放了在各种系统下初始化这个程序的脚本,我的终端是bash,所以使用如下命令初始化。
    source /usr/share/Module/init/bash
    我把它加在.bashrc下了。
    注:得用绝对路径source,如果只在那个文件夹下使用命令source bash会提示
    bash:是一个二进制文件
    暂时不知道为什么。
  2. modulefile的书写
    1.搜索路径
    顺便说下module-environment的使用方法。
    使用module load xxx命令后,系统就会在特定路径下去寻找名字为xxx的文件,然后按照该文件里面的内容来修改环境变量。
    这个特定的路径默认是在/usr/share/modules/modulefile和一些其他的地方。如果想修改或者说添加一些别的路径,可以通过在初始化文件中添加命令修改MODULEPATH来达到目的。
    /usr/share/module/init/bash中最后一行添加
    export MODULEPATH=/YOUR/PATH/:$MODULEPATH
    注:如果在.bashrc 文件中直接修改MODULEPATH是没有用的,不知道为什么。可能是我中间有什么地方错了。
    2.文件书写
  3. 在文件开头一定要写上
    #%Module1.0
    这个是识别这个文件为modulefile的,没有他这个文件不会被识别
  4. 有几个命令,其实命令有很多,我只说一些暂时能用的上的
    prepend 要修改的环境变量 路径
    这个命令会把路径添加到对应的环境变量中
    setenv 环境变量名 值
    修改环境变量值。
    conflict modulefile
    如果这个modulefile 已经被加载,那么当前的modulefile将不能被加载。
    最后会放上一个例子
  5. 使用
    一些命令。
    module avail显示可以使用的模块
    module load加载模块
    module unload卸载模块
    module list显示已经加载的模块
  6. 官网地址
    https://modules.readthedocs.io/en/latest/module.html
  7. 遇到的问题
    a. 使用sudo apt-get install environment-modules安装完成后初始化源文件失败,显示没有那个函数或者文件。
    这是软件源过久,老软件的bug,去官网地址手动下载安装。
    b. 手动安装的时候configure找不到tcl version
    暂时不知道怎么回事,官方回复说是os的问题,给了两种选择:
    (1)手动指定tcl的version :./configure --tcl-version=你的版本号
    (2)禁用tcl,或者说是选择不需要tcl 的下载方式,说需要tcl的下载其实是下载兼容模式版本
    ./configure -disable-compat-version
    最后放上一个例子,抄老师的,哈哈。
#%Module1.0
module-whatis    Provides the Intel fortran and c compiler mkl 2015 environment for x86_64 systems
setenv           INTEL_LICENSE_FILE /opt/intel/licenses/all_intel_products.lic
#conflict        intel pathscale pgi gcc open64
setenv           CC icc
setenv           CXX icpc
setenv           FC ifort
setenv           F77 ifort
setenv           F90 ifort
setenv           F95 ifort
setenv           CFLAGS -O2
setenv           FFLAGS -O2
setenv           OFLAGS -O3
setenv           GFLAGS -g -O1
setenv           MKLROOT /opt/intel/mkl
prepend-path     PATH /opt/intel/composer_xe_2015/bin
prepend-path     MANPATH /opt/intel/composer_xe_2015/man/en_US
prepend-path     LD_RUN_PATH     /opt/intel/composer_xe_2015/lib/intel64:/opt/intel/composer_xe_2015/mkl/lib/intel64
prepend-path     LD_LIBRARY_PATH /opt/intel/composer_xe_2015/lib/intel64:/opt/intel/composer_xe_2015/mkl/lib/intel64
prepend-path     LIBRARY_PATH    /opt/intel/composer_xe_2015/lib/intel64:/opt/intel/composer_xe_2015/mkl/lib/intel64
prepend-path     C_INCLUDE_PATH            /opt/software/ompi/gcc9.4.0/include  #gcc编译器的头文件默认搜索路径
prepend-path     CPLUS_INCLUDE_PATH        /opt/software/ompi/gcc9.4.0/include #g++编译器的头文件默认搜索路径
  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值