Spack

简介

Spack是一个包管理工具,它为大型超级计算中心设计,支持各种平台和环境上的软件的多个版本和配置。

使用方法

一、激活spack环境

# 激活python环境
module load /public/software/modules/apps/anaconda3/3-2023.09
source activate spack
# 激活spack软件
source /public/software/spack/share/spack/setup-env.sh

二、spack 虚拟环境使用

# 创建虚拟环境
spack env create <虚拟环境名>
# 激活虚拟环境
spack env activate <虚拟环境名>
# 取消虚拟环境
spack env deactive

三、软件的操作

# 查看已安装的软件(不带软件名称则默认查询全部)
spack find <软件名称>
# 查看可安装的软件(不带软件名称则默认查询全部)
spack list <软件名称>
# 加载软件(激活虚拟环境时默认加载所有环境)
spack load <软件名称>
# 软件安装(注:可能会受网络影响)
spack install <软件名称>

四、依赖加载

spack 设计的初衷是解决软件、编译器版本的冲突,最常见的操作便是通过修改 $PATH 变量进行版本控制。

但对于lib库则需要手动添加spack环境信息到 $LD_LIBRARY_PATH 才能提供某些依赖版本的so文件

具体操作:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/public/software/spack/var/spack/environments/<spack虚拟环境名称>/.spack-env/view/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/public/software/spack/var/spack/environments/<spack虚拟环境名称>/.spack-env/view/lib64

参考文献

  1. Spack:超算上最好的包管理器: https://zhuanlan.zhihu.com/p/426743137

  2. Spack — Spack 0.22.0.dev0 documentation: https://spack.readthedocs.io/en/latest/


最后更新: 2025 年 06 月 30 日