Spack - 自动化安装管理器

我们有什么问题?

在日常支持中,我们可能需要安装Python、GCC等工具。通常步骤是

  • 找到官网,下载需要的包
  • 传到目的服务器
  • 解压
  • ./configure && make && make install

一圈下来,耗时不少。

Spack是什么?

它是一个自动化包管理器,支持管理Linux、MacOS上的包。

Spack能做什么?

Spack能使得上述步骤自动化,并自动生成modulefile(Environment Modules或Lmod的,都可以生成)——无论是对于广泛使用的开源包,还是有知识产权保护的有限范围分发包,还是处于研发阶段的内部包,它都能轻松搞定。

举例

本文以安装开源包Python为例,来感受一下自动安装的魅力,

先看已有的Python版本

[thesre@localhost ~]$ module avail python
-------------------------------------------- /app/spack-0.16.2/share/spack/modules/linux-centos7-sandybridge --------------------------------------------
python-3.8.6-gcc-9.4.0-x7ebx7b
[thesre@localhost ~]$

安装Python 3.9.0

[thesre@localhost ~]$ spack -k install python@3.9.0
==> Warning: You asked for --insecure. Will NOT check SSL certificates.
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/libiconv-1.16-qp6xhw7243p2s3jrfygxcor3f723zy4y
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/libbsd-0.10.0-ot7ls7bw4butgierpa4cmjluqvsjoaji
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/pkgconf-1.7.3-vdqtrqwkkhqy3g4i5jjj3t3siptzpgxm
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/xz-5.2.5-ds3jrbkvzlrnklirwgnagoj67ngbx6gb
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/zlib-1.2.11-wrpx7fqamc562dxcn3qwyl5dzfswl5qh
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/libffi-3.3-s7scryukxbekp7u3hlq5czx5fyz2cyzi
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/libuuid-1.0.3-rssfovgso7ojag5ybguj4qpoptzyliab
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/berkeley-db-18.1.40-gfcdrmlydcd4smrmzkziudw6zedihsmv
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/diffutils-3.7-qhfscuxrwvf5y3y3jywz5fiqqgvy6wvj
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/tar-1.32-n6b45i35ks4is5u5taaqd6mzfw44fzlk
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/expat-2.2.10-cal2lrbnkmhqomqhpw4buidkwd256fvu
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/ncurses-6.2-idwc6kcoigxcy43iau4bmlvkocu4olg5
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/libxml2-2.9.10-miqastwta7pzpo4nvqt2bwnkyohwute7
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/bzip2-1.0.8-bt2hrgk32n4zue4w53q4ev7ylidvyv6e
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/readline-8.0-cf4ys6umtgnbq42uxy55ar6yrko2cae5
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gettext-0.21-cnwqlvg22ivf2a6cygxcphkmx4l5m36p
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/sqlite-3.33.0-wbvmbd6rjewg6fqpciwa72slwpbinhac
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/gdbm-1.18.1-brzlhvhm5mppt7aml2yqz5tlztqrolne
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/perl-5.32.0-gg2xi5suigorukjnv3irvkgv6ebsb2st
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/openssl-1.1.1h-7p3yykxrgamue5lapcnfeh5zhkhohipr
==> Installing python-3.9.0-wz6q56w5ytjm5mh2us44r2df5ntcwvfl
==> No binary for python-3.9.0-wz6q56w5ytjm5mh2us44r2df5ntcwvfl found: installing from source
==> Using cached archive: /app/spack-0.16.2/var/spack/cache/_source-cache/archive/df/df796b2dc8ef085edae2597a41c1c0a63625ebd92487adaef2fed22b567873e8.tgz
==> python: Executing phase: 'autoreconf'
==> python: Executing phase: 'configure'
==> python: Executing phase: 'build'
==> python: Executing phase: 'install'
[+] /app/spack-0.16.2/opt/spack/linux-centos7-sandybridge/gcc-9.4.0/python-3.9.0-wz6q56w5ytjm5mh2us44r2df5ntcwvfl
[thesre@localhost ~]$

可以看到多了一个版本,是刚刚安装的Python 3.9.0,其modulename为python-3.9.0-gcc-9.4.0-wz6q56w

[thesre@localhost ~]$ module avail python
-------------------------------------------- /app/spack-0.16.2/share/spack/modules/linux-centos7-sandybridge --------------------------------------------
python-3.8.6-gcc-9.4.0-x7ebx7b  python-3.9.0-gcc-9.4.0-wz6q56w

Spack简介

101资料:https://spack-tutorial.readthedocs.io/en/latest/#tutorial-spack-101

spack能为

  • OS版本
  • 架构
  • 包版本
  • 不同编译器
  • 包本身的不同编译选项

的组合自动生成依赖DAG(单向无环图),并为安装的每一个包名自动打上哈希码,以确保不会冲突。
以上面例子为例,安装Python 3.9.0,并装上了其n个依赖包(全都已经安装好了的)。假如将上述组合中的任何一个更改,都会生成一个新的DAG。

Spack - 自动化安装管理器相关推荐

  1. Python 安装管理器 pythonz

    pythonz 是一个 Python 安装管理器,支持 CPython, Stackless, PyPy 和 Jython 使用示例: 1 pythonz install 2.7.3 2 python ...

  2. DIY手动定制一个属于自己的软件安装管理器工具盘[二]

    [迅雷5 Thunder 5.2.0.207] Caption=迅雷5 Thunder5.1.3.168 雨林木风版 SourceFile=网络工具\Thunder5\Thunder5.exe Com ...

  3. 博图V15自动化许可证管理器打不开_@大学生:机械设计制造及其自动化专业电脑选购指南...

    机械设计制造及其自动化(机械设计专业,机械制造和机电一体化可参考)专业电脑选购指南 开 幕 雷 击 对于大多数机械学子来说,四年的求学生涯除了班里凤毛麟角的几个女生,你能见到异性的地方也只有社团或者学 ...

  4. 征途服务管理器显示不出启动服务器,征途服务器管理器连接数据库

    征途服务器管理器连接数据库 内容精选 换一换 本章介绍如何在管理控制台购买GaussDB(for openGauss)实例,并通过内网使用弹性云服务器连接GaussDB(for openGauss)实 ...

  5. ABB机器人通过安装管理器重做系统

    文章目录 一.重做系统介绍 二.重做步骤 1.连接机器人 2.添加系统版本 3.添加许可 4.选项确认 5.确认应用 一.重做系统介绍 工具:软件robotstudio 连接到需要重做的真实机器人上 ...

  6. 网页JS自动化脚本(一)安装油猴或暴力猴等脚本管理器并新建脚本

    在我们的工作生活当中使用网页的机会越来越高,很多时候要进行重复的操作,所以进行一些JS脚本就成了可选项 首先我们要在网页浏览器中安装上脚本管理器,这里示范的是安装暴力猴,是一个开源的免费的小软件,是在 ...

  7. node升级命令_Vue CLI 4 发布:自动化升级过程,支持自定义包管理器

    作者 | Swanand Kadam 译者 | 无明 Vue CLI[1] 团队最近把他们的命令行工具更新到了 4.0.0 版本.这一版本可以帮助开发者自动化升级过程,可以使用额外的包管理器,并可以更 ...

  8. sn0int - 半自动化 OSINT 框架和包管理器

    第一章 安全与启动 目前比较流行recon-ng 在国内存在使用困难的问题,这里我找到了一个功能类似的替代工具sn0int,但是由于它出现时间不长,所以资料和教程比较少,这里我尝试编写一个系列教程,希 ...

  9. 自动化运维工具ansible的安装管理以及模块介绍

    自动化运维工具ansible的安装管理以及模块介绍 目录 自动化运维工具ansible的安装管理以及模块介绍 一.ansible概述 1.几种常用运维工具比较 2.Ansible简介 3.Ansibl ...

最新文章

  1. android插件式换肤,Android学习之插件化换肤
  2. HTML 5 全局属性
  3. lab 常用配置参数 代码片段
  4. IntellijIDEA配置Tomcat
  5. VS 2013 统一修改所有工程的目录配置(以 boost、opencv3 的安装为例)
  6. excel 小技巧选某些列的时候总是选到后面的空的部分解决方法
  7. asp在线音乐系统音乐网站 音乐盒
  8. WC2007 剪刀石头布【补集转化+比赛问题费用流】
  9. Creator打android包时报Could not resolve all files for configuration ':jcore-react-native:lintClassPath'异
  10. python制作收费_python分段计费demo
  11. G6309列车02车05D号
  12. .NetCore微信支付+服务商模式(saas)
  13. 前端实训-----摆弄形状、浮动,高度塌陷等
  14. 跟我学AngularJs:AngulaJs开发技巧汇总(持续更新)
  15. LAMP兄弟连38期激情开班
  16. vscode cmake 多版本opencv pcl 64/32位
  17. Joint Extraction of Retinal Vessels and Centerlines Based on Deep Semantics and Multi-Scaled Cross-T
  18. es6去除重复项_javascript在ES6中从数组中筛选出重复项并仅返回唯一值
  19. 无人机新手基础操作教程
  20. 如何用vba在单元格右键快捷菜单中添加自定义的菜单命令

热门文章

  1. 桌面图标阴影去除方法--ZT自百度知道
  2. C++:opencv 人脸检测
  3. 移动端调试工具vConsole与Eruda
  4. Burp 扩展武器库
  5. 快速搭建一个本地服务器(http-server)
  6. 安全防护之Windows八大保密技巧
  7. Deepin RISCV 修包流程问题总结
  8. 【NOIP初赛】 计算机人物总结
  9. HTML里的常用特殊符号代码
  10. pogo pin镀金是通过哪些工序的,镀金的流程是怎样的?