使用spack mirror简化离线环境的包安装

修订版

22-Apr-2022 revision 1.

30-Jul-2022 revision 2.

前言

众所周知,研发架构是企业的安全与效率需经权衡后的结果。大多数企业的研发环境并不能连接互联网,这也就意味着不能很好地(至少是第一时间)使用各种开源工具。

在Linux环境下使用开源工具,除了要安装该工具本身,也可能涉及到非常复杂的依赖链。显然,使用trial-and-error的方式进行安装,已不太现实。笔者曾在海思HPC环境,为海外同事安装一个开源工具环境,手动花了两周(到拖拖拖一两个月)时间,因受困于复杂的依赖链关系,最终以失败告终,告诉用户你这需求解决不了。

痛定思痛,2019年我开始找自动化安装解决方案。spack与easybuild浮出水面。在这方面,原来全球的超算同行已经走在很前面。

本文就spack mirror展开探讨,解释它如何能为芯片研发HPC环境自动化安装正确的包,同时能节省管理员的安装时间,节省用户的使用时间。

架构图(待补充)

以安装vim为例

在在线环境,直接执行

[tools_adm@internet-server-001 ~]$ spack install vim +gtk +gui +lua +perl +python +ruby +x +cscope

生成mirror,并在离线环境的安装步骤:

1. 在联网的服务器执行

[tools_adm@internet-server-001 ~]$ mkdir /tools/oss/spack-mirror/pkgs-mirror
[tools_adm@internet-server-001 ~]$ spack mirror create --directory /tools/oss/spack-mirror/pkgs-mirror --dependencies vim +gtk +gui +lua +perl +python +ruby +x +cscope

将vim的默认版本安装包,以及相应的依赖,全部mirror到 /tools/oss/spack-mirror/pkgs-mirror 文件夹下,如下图:

2. 传到离线的生产服务器

2.1 上传

将 /tools/oss/spack-mirror/pkgs-mirror 目录打包上传到离线的生产环境,同步到 /tools/oss/spack-mirror/pkgs-mirror 路径下。这个步骤,建议使用自动化的方式完成。

2.2 配置mirror

pack mirror add local_filesystem file:///tools/oss/spack-mirror/pkgs-mirror

或手动编辑 ~/.spack/mirrors.yaml 文件

mirrors:
  local_filesystem: /tools/oss/spack-mirror/pkgs-mirror

2.3 使用

[tools_adm@internal-server-001 ~]$ spack install vim +gtk +gui +lua +perl +python +ruby +x +cscope

根据终端刷的信息,可以看到本次安装使用的是本地mirror目录下的包了。

参考资料

Mirrors (mirrors.yaml) — Spack 0.19.0.dev0 documentation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王万林 Ben

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值