spack 从外网往内网快速搬运开源包

@vrqq  July 24, 2020

用法很简单,需要内网先有python环境 2或者3都可以

参考文档:
https://spack.readthedocs.io/en/latest/command_index.html#spack-mirror-create

支持的包很多,包括llvm python 等等。。
先在一个墙外机下载并解压,例如解压到 /path/spack
然后在该外网机运行如下命令(例如我们想装全套llvm)

cd /path/spack/bin
./spack mirror create --dependencies libelf llvm

##安装好之后打包整个spack目录,并复制到目标内网机
cd /path
tar -zcvf myspack.tar.gz spack

然后复制到内网机 解压并运行

## 解压
tar -zxvf myspack.tar.gz ~/
cd ~/spack

##
cd ~/spack/bin
##先看下本机编译器
./spack compilers

##一键安装
./spack install libelf llvm

##设置运行环境 如果默认请加入~/.bash_profile
~/spack/share/spack/setup-env.sh
~/spack/bin/spack load llvm

注意:如果内网机为旧系统(如 gcc4,5,...),无法使用新版spack!

  • CentOS 7 最大可用版本为 spack 0.16.3

    • 在之后版本的 spack依赖了一个叫 clingo 的python库,想编译这个库需要高版本gcc
    • spack bootstrap 可以创建缓存 但仅限当前系统,如果内网rhel7 当前系统rhel8 缓存复制进去照样不能用
    • 但我们想用spack装高版本gcc
    • (实际上很多驱动程序可能都没有 rhel8 系列)

注意二:如果同一台机子上曾经使用过高版本spack,换低版本时 记得清掉~/.spack文件夹


添加新评论