Environment Modules简单使用
2024-10-07 06:32:04
Environment Modules简单使用
Environment Modules简介
Typically users initialize their environment when they log in by setting environment information for every application they will reference during the session. The Environment Modules package is a tool that simplify shell initialization and lets users easily modify their environment during the session with modulefiles.
下载安装
安装步骤
$ INSTALL.txt
$ ./configure
$ make
$ make install
默认安装目录
/usr/local/Modules
├── bin
│ ├── add.modules
│ ├── envml
│ ├── mkroot
│ └── modulecmd
├── etc
│ └── siteconfig.tcl
├── init
│ ├── bash
│ ├── bash_completion
│ ├── cmake
│ ├── csh
│ ├── fish
│ ├── fish_completion
│ ├── ksh
│ ├── ksh-functions
│ ├── lisp
│ ├── modulerc
│ ├── perl.pm
│ ├── profile-compat.csh
│ ├── profile-compat.sh
│ ├── profile.csh
│ ├── profile.sh
│ ├── python.py
│ ├── r.R
│ ├── ruby.rb
│ ├── sh
│ ├── tcl
│ ├── tcsh
│ ├── tcsh_completion
│ ├── zsh
│ └── zsh-functions
├── lib
│ └── libtclenvmodules.so
├── libexec
│ ├── modulecmd-compat
│ └── modulecmd.tcl
├── modulefiles
│ ├── dot
│ ├── module-git
│ ├── module-info
│ ├── modules
│ └── gcc
└── share
├── doc
└── vim
初始化
刚刚安装好的
Environment Modules
是没有module
这条shell命令的
需要进行简单的配置source
一下环境
- 在
profile.d
下建立软连接,执行下列语句
# root用户
$ cd /etc/profile.d
$ ln -s /usr/local/Modules/init/profile.sh module-profile.sh
$ ln -s /usr/local/Modules/init/profile.csh module-profile.csh
# 普通用户(bash)
$ source /usr/local/Modules/init/profile.sh
$ echo "source /usr/local/Modules/init/profile.sh" >> ~/.bashrc
$ which module
module is a function
module ()
{
_module_raw "$@" 2>&1
}
bash下支持自动补全
# 确认已经安装bash-completion
$ cd /etc/bash_completion.d
ln -s /usr/local/Modules/init/bash_completion modules-compliction.bash
管理工具的不同版本
一个简单的例子
$ cd /usr/local/Modules/modulefiles
$ mkdir riscv_toolchain
$ cd riscv_toolchain
$ touch compile-version
$ touch freedomstudio-version
- compile-verison
#%Module1.0######################################################################
##
## riscv-toolchain modulefile
##
proc ModulesHelp { } {
puts stderr "\tThe riscv-toolchain compile version Module\n"
puts stderr "\tThis module adds the current working directory to your path."
}
module-whatis "adds /opt/riscv/toolchain/bin to your PATH environment variable"
conflict riscv_toolchain/freedomstudio-version
set riscv_home /opt/riscv/toolchain
setenv RISCV $riscv_home
append-path PATH $riscv_home/bin
append-path LIBRARY_PATH $riscv_home/lib
append-path LD_LIBRARY_PATH $riscv_home/lib
append-path LD_INCLUDE_PATH $riscv_home/include
append-path MANPATH $riscv_home/share/man
- freedomstudio-verison
#%Module1.0######################################################################
##
## riscv-toolchain modulefile
##
proc ModulesHelp { } {
puts stderr "\tThe riscv-toolchain compile version Module\n"
puts stderr "\tThis module adds the current working directory to your path."
}
module-whatis "adds /opt/FreedomStudio/SiFive/riscv64-unknown-elf-gcc-8.3.0-2019.08.0 to your PATH environment variable"
conflict riscv_toolchain/compile-version
set riscv_home /opt/FreedomStudio/SiFive/riscv64-unknown-elf-gcc-8.3.0-2019.08.0
setenv RISCV $riscv_home
append-path PATH $riscv_home/bin
append-path LIBRARY_PATH $riscv_home/lib
append-path LD_LIBRARY_PATH $riscv_home/lib
append-path LD_INCLUDE_PATH $riscv_home/include
append-path MANPATH $riscv_home/share/man
简单使用
$ module load riscv_toolchain/compile-version
$ which riscv64-unknown-elf-gcc
riscv64-unknown-elf-gcc is /opt/riscv/toolchain/bin/riscv64-unknown-elf-gcc
$ module load riscv_toolchain/freedomstudio-version
Loading riscv_toolchain/freedomstudio-version
ERROR: riscv_toolchain/freedomstudio-version cannot be loaded due to a conflict.
HINT: Might try "module unload riscv_toolchain/compile-version" first.
$ module unload riscv_toolchain/compile-version
$ module load riscv_toolchain/freedomstudio-version
$ which riscv64-unknown-elf-gcc
riscv64-unknown-elf-gcc is /opt/FreedomStudio/SiFive/riscv64-unknown-elf-gcc-8.3.0-2019.08.0/bin/riscv64-unknown-elf-gcc
个人环境管理
~/privatemodules/
与/usr/local/Modules/modulefiles
一样可以包含local的环境设置
$ cd ~/
$ mkdir privatemodules/
常用命令
命令 | 作用 |
---|---|
module avail 或 module av | 查看系统中可用的资源 |
module add 或 module load | 加载模块 |
module rm 或 unload | 卸载模块 |
module list 或 module li | 显示已加载模块 |
module purge | 卸载所有模块 |
module show | 显示模块配置文件 |
module swap 或 module switch | 将模块1 替换为 模块2 |
module help | 查看具体软件的信息 |
参考资料
[1].超算入门课程4 module命令使用教学
[2].Environment Modules
[3].Linux使用Moduler切换各种MPI环境
最新文章
- 网页访问全过程剖析[转].md
- jqGrid 学习笔记--数据异步加载方法(转)
- Hibernate关联映射之延迟加载
- 解决浮层弹出如何加上datepicker,并且浮动在上面
- Mongodb FAQ 存储(storage)篇
- 将View兑换Bitmap
- delphi xe5 android 开发数据访问server端(二)
- java.util.concurrent并发包诸类概览
- Linux企业级项目实践之网络爬虫(4)——主程序流程
- d指针在Qt上的应用及实现
- Hibernate-----阶段总结
- ajax请求,函数外无法获取请求的数据问题解决
- ipset 教程
- 使用intellJ导入非maven,gradle等非构建工程的依赖,发布工程时候的打包详解
- python-Tkinter整理总结
- Android 新加几个开源项目
- 连接mysql 出现:java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.
- 2.5 SeleniumBuilder辅助定位元素
- 使用Btrace来动态监控方法的参数和返回值
- Android 第三方分享中遇到的问题以及解决方式