Environment Modules+Spack搭配使用,轻松安装各种软件

Environment Modules+Spack搭配使用,轻松安装各种软件Spack EnvironmentM 实现 Linux 轻松安装软件 自动配置环境变量 解决非 root 用户日常安装软件出现的权限问题 缺乏依赖 版本冲突的问题

大家好,欢迎来到IT知识分享网。

目录

前言

一、软件介绍

1.Spack

2.Environment Modules

二、Spack安装

1.依赖环境

2.安装

3.激活Spack

4.测试安装软件

5.配置

二、Environment Modules安装

1.下载软件包

2.安装依赖

3.安装

4.初始化modules软件

5.配置 

三、结果

1.列出软件

2.加载软件

3.列出当前加载的软件

​编辑 4.冲突检测 

总结


前言

  在Linux安装软件,经常因为权限或者其他问题导致依赖环境难以安装。即使是普通用户通过Spack也可以实现自动化安装软件及其依赖,而Spack自己的spack load反响不如environment module方便,两者搭配,干活不累。

本文将带你从头安装这两个软件,并设置相关配置。


一、软件介绍

1.Spack

Spack是一款高性能包管理工具,支持软件不同版本,不同编译其及编译选项对安装包进行安装。

关于Spack的使用参考Spack官方文档。

2.Environment Modules

Environment Modules是一款环境变量管理工具,通过module实现软件环境变量的管理,快速加载和切换软件环境。

关于Environment Modules的使用参考 Environment Modules官方文档。

二、Spack安装

1.依赖环境

以Ubuntu22.04为例

sudo apt update sudo apt install build-essential ca-certificates coreutils curl environment-modules gfortran git gpg lsb-release python3 python3-distutils python3-venv unzip zip

2.安装

从github下载软件包

# 这里我把软件安装到 $HOME/software中 mkdir software && cd software git clone -c feature.manyFiles=true https://github.com/spack/spack.git

3.激活Spack

. $HOME/software/spack/share/spack/setup-env.sh # 注意开头的 . 后边有个空格 # 或者 source $HOME/software/spack/share/spack/setup-env.sh # 也可以把这句加到 ~/.bashrc中,登录自动激活Spack

4.测试安装软件

这里我安装了两个软件bedtools和gatk,而gatk有4.4.0.0和4.5.0.0两个不同的软件版本。

spack install -j 8 bedtools2 # -j 8 多线程运行,加速安装过程 spack install -j 8 gatk@4.5.0.0 spack install -j 8 gatk@4.4.0.0

5.配置

1)修改module配置

spack config edit modules # 编辑内容如下 modules: default: enable: [tcl] # 以后用Spack安装的软件都会自动用tcl生成对应的Module的文件 tcl: hide_implicits: true # 隐藏依赖包,module av就只显示主要的软件,不会显示依赖包 all: autoload: direct # or `run` conflict: - '{name}' # 同名软件冲突,检测同名软件是否已经加载 lmod: hide_implicits: true # 隐藏依赖包,module av就只显示主要的软件,不会显示依赖包 all: autoload: direct # or `run` conflict: - '{name}' # 同名软件冲突,检测同名软件是否已经加载

详细配置参考官方Spack Module配置。 

 2)生成Environment Modules可用的module 文件。

spack module tcl refresh --delete-tree 

会出现以下内容。红线框起来的部分,每个人可能不一样,记住你自己是什么样的。

Environment Modules+Spack搭配使用,轻松安装各种软件

# 提示 Do you want to proceed? [y/n] y # 输入y确认 

如果你以后又修改了spack的module配置,都需要重新运行这个命令,才能让新配置生效。 

二、Environment Modules安装

1.下载软件包

此处建议用最新版,module 3.x配置的时候有些问题。

curl -LJO https://github.com/cea-hpc/modules/releases/download/v5.4.0/modules-5.4.0.tar.gz tar xfz modules-5.4.0.tar.gz

2.安装依赖

如果后边安装报错,参考官网安装说明“Requirements”,看看你缺哪项

一般大概率会缺失tcl-devel>=8.5

sudo apt-get install tcl-devel

3.安装

./configure # 可以设置--prefix=/path/to/your/file指定安装位置 make -j 4 # -j 4 代表多线程编译,可以加快安装速度 make install

如果你没修改位置的话,Environment Modules默认安装在 /usr/local/Modules 

4.初始化modules软件

在shell启动时启用modules初始化,将其链接到/etc/profile.d/

ln -s /usr/local/Modules/init/profile.sh /etc/profile.d/modules.sh ln -s /usr/local/Modules/init/profile.csh /etc/profile.d/modules.csh # 或者 source /usr/local/Modules/init/bash # 可以添加到 ~/.bashrc实现登录自动激活

如果module命令没生效,重新登录终端,让配置生效。

注意,module初始化后,使用which module是找不到module命令的,这是正常现象。

5.配置 

添加Spack生成的module文件

# linux-ubuntu22.04-skylake这个目录因人而异,改成你自己实际的目录 module use --append $HOME/software/spack/share/spack/modules/linux-ubuntu22.04-skylake/

三、结果

1.列出软件

1)查看我们通过Spack安装的软件,是不是能被module识别。

module av

如果这步没看到spack的module,重新登录终端,让之前的配置生效。 

Environment Modules+Spack搭配使用,轻松安装各种软件

2)这里还可以发现,它只列出了我安装的三个软件,没有列出依赖软件,这就是我想要的结果。看着简练。这就是之前配置spack module中hide_implicits: true的结果。

否则,你看到的是这样的情况,所有依赖包都会显示,让人眼花缭乱。

Environment Modules+Spack搭配使用,轻松安装各种软件

2.加载软件

module load gatk/4.4.0.0-gcc-11.4.0-zzhq6bf

3.列出当前加载的软件

比较这两个命令的结果差异

module list module list -a

 module list -a是实际加载的内容,可以发现,除了主程序gatk之外,它还加载了很多依赖软件、库

Environment Modules+Spack搭配使用,轻松安装各种软件 4.冲突检测 

我这里安装两个版本的gatk软件,一个是4.4.0.0版本,一个是4.5.0.0。我们试着同时加载这两个软件,看看会发生什么。

前边我们已经加载了4.4.0.0那个了,现在加载4.5.0.0这个版本。

Environment Modules+Spack搭配使用,轻松安装各种软件

可以发现,它提示我们已经加载了gatk/4.4.0.0这个版本了,如果你要用4.5.0.0这个版本,需要先unload gatk/4.4.0.0

module unload gatk/4.4.0.0-gcc-11.4.0-zzhq6bf # unload 4.4.0.0版本 module load gatk/4.5.0.0-gcc-11.4.0-sjvcslh # 载入4.5.0.0版本 module list # 查看当前载入的软件

这样我们就切换到4.5.0.0版本了 

Environment Modules+Spack搭配使用,轻松安装各种软件


总结

以上就是今天要讲的内容,本文讲解了Spack和Environment modules的安装和配置。这样我们就可以通过Spack安装软件,搭配module的环境管理,轻松使用各种软件。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132487.html

(0)
上一篇 2025-07-30 22:33
下一篇 2025-07-30 22:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信