入门指南¶
获取 Spack 非常简单。你可以使用以下命令从 GitHub 仓库克隆它:
$ git clone --depth=2 https://github.com/spack/spack.git
这会创建一个名为 spack 的目录。克隆好 Spack 后,我们建议你为当前 shell 运行对应的初始化脚本。
针对 bash, zsh 和 sh 用户
$ . spack/share/spack/setup-env.sh
针对 csh 和 tcsh 用户
$ source spack/share/spack/setup-env.csh
针对 fish 用户
$ . spack/share/spack/setup-env.fish
现在你已经准备好使用 Spack 了!
列出可安装的软件包¶
Spack 就绪后,你可以使用以下命令列出它所知的所有软件包:
$ spack list
如果你想了解特定软件包的更多信息(例如 hdf5),可以使用:
$ spack info hdf5
该命令会显示关于 hdf5 的信息,包括简要描述、Spack 已知的软件包版本,以及安装时可以启用的所有选项。
正如你所见,在安装软件包之前获取它们的基本信息非常简单!
安装你的第一个软件包¶
要安装大多数软件包,Spack 需要一个可用的编译器套件。若要搜索机器上可用的编译器,可以运行:
$ spack compiler find
该命令会向用户显示是否找到了编译器,以及它们的配置存储在何处。如果搜索成功,你现在可以列出已知的编译器,并获得类似于以下内容的输出:
$ spack compiler list
==> Available compilers
-- gcc ubuntu20.04-x86_64 ---------------------------------------
[e] gcc@9.4.0 [e] gcc@8.4.0 [e] gcc@10.5.0
如果没有找到编译器,你需要:
安装进一步的先决条件,请参阅 Spack 先决条件,然后重复上述搜索操作。
注册一个提供现成二进制编译器构建缓存。
一旦编译器可用,你就可以继续安装你的第一个软件包:
$ spack install tcl
该命令的输出应类似于以下内容:
[e] zmjbkxx gcc@10.5.0 /usr (0s)
[e] rawvy4p glibc@2.31 /usr (0s)
[+] 5qfbgng compiler-wrapper@1.0 /home/spack/.local/spack/opt/linux-icelake/compiler-wrapper-1.0-5qfbgngzoqcjfbwrjn2vh75fr3g25c35 (0s)
[+] vchaib2 gcc-runtime@10.5.0 /home/spack/.local/spack/opt/linux-icelake/gcc-runtime-10.5.0-vchaib2njqlk2cud4a2n33tabq526qjj (0s)
[+] vzazvty gmake@4.4.1 /home/spack/.local/spack/opt/linux-icelake/gmake-4.4.1-vzazvtyn5cjdmg3vkkuau35x7hzu7pyl (12s)
[+] soedrhb zlib-ng@2.3.3 /home/spack/.local/spack/opt/linux-icelake/zlib-ng-2.3.3-soedrhbnpeordiixaib6utcple6tpgya (3s)
[+] u6nztpk tcl@8.6.17 /home/spack/.local/spack/opt/linux-icelake/tcl-8.6.17-u6nztpkhzbga4ul665qqhxucxqk3cins (49s)
恭喜!你刚刚使用 Spack 安装了你的第一个软件包!
使用你刚才安装的软件¶
一旦安装了 tcl,你可以通过其绝对路径启动 tclsh 来立即使用它:
$ /home/spack/.local/spack/opt/linux-icelake/tcl-8.6.17-u6nztpkhzbga4ul665qqhxucxqk3cins/bin/tclsh
>% echo "Hello world!"
Hello world!
这样做有效,但使用如此长的绝对路径并不是运行可执行文件的最便捷方式。
在命令行上使用 tclsh 最简单的方法是:
$ spack load tcl
当前 shell 的环境现已修改,你可以直接运行:
$ tclsh
要撤销这些修改,你可以:
$ spack unload tcl
环境与视图
Spack 环境 是安装和加载一组经常一起使用的软件包的更好方式。关于此主题的讨论超出了本 入门指南 的范围,更多信息请参考 环境 (spack.yaml, spack.lock)。
后续步骤¶
本节内容帮助你快速安装并运行了 Spack。文档中还有更多资源,涵盖了基础和高级主题的详细信息。