Environment Modules简单使用
Environment Modules(简介)[http://modules.sourceforge.net/]
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.
下载安装
(下载网址)[http://modules.sourceforge.net/]
安装步骤
默认安装目录
/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 profile.d $ ln -s /usr/local/Modules/init/profile.sh $ ln -s /usr/local/Modules/init/profile.csh # 普通用户 $ source ~/.bashrc
管理工具的不同版本
一个简单的例子
$ 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
简单使用
$ 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
个人环境管理
$ cd ~/ $ mkdir privatemodules/
~/privatemodules/
与/usr/local/Modules/modulefiles
一样可以包含local的环境设置