入门 • 配置 • 社区 • 贡献 • 打包指南
Spack 是一个多平台包管理器,可以构建和安装多个版本和配置的软件。它适用于 Linux、macOS、Windows 和许多超级计算机。 Spack 是非破坏性的:安装新版本的软件包不会破坏现有的安装,因此同一软件包的多种配置可以共存。
Spack 提供了一个简单的“spec”语法,允许用户指定版本和配置选项。包文件是用纯 Python 编写的,并且规范允许包作者为同一包的许多不同版本编写单个脚本。使用 Spack,您可以按照您想要的方式构建软件。
有关示例和亮点,请参阅功能概述。
要安装 spack 和您的第一个包,请确保您有 Python 和 Git。然后:
$ git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git
$ cd spack/bin
$ ./spack install zlib
提示
-c feature.manyFiles=true
提高了 git 在包含 1,000 多个文件的存储库上的性能。
--depth=2
修剪 git 历史记录以减少 Spack 安装的大小。
提供完整文档,或运行spack help
或spack help --all
。
有关 Spack 语法的备忘单,请运行spack help --spec
。
我们维护一个实践教程。它涵盖了基本到高级的用法、打包、开发人员功能和大型 HPC 部署。您可以使用 Docker 容器在自己的笔记本电脑上完成所有练习。
请随意使用这些材料来向您组织的用户教授 Spack。
Spack 是一个开源项目。欢迎提出问题、讨论和贡献。贡献可以是任何内容,从新软件包到错误修复、文档,甚至新的核心功能。
资源:
@mention
我们!向 Spack 做出贡献相对容易。只需向我们发送拉取请求即可。当您发送请求时,请在 Spack 存储库上develop
目标分支。
您的 PR 必须通过 Spack 的单元测试和文档测试,并且必须符合 PEP 8。我们通过 CI 流程强制执行这些准则。要在本地运行这些测试以及有关 git 的有用提示,请参阅我们的贡献指南。
Spack 的develop
分支有最新的贡献。拉取请求应该以develop
为目标,想要最新的软件包版本、功能等的用户可以使用develop
。
对于多用户站点部署或需要非常稳定的软件安装的其他用例,我们建议使用 Spack 的稳定版本。
每个Spack发行系列也有相应的分支,例如releases/v0.14
有0.14.x
版本的Spack, releases/v0.13
有0.13.x
版本。我们将重要的错误修复向后移植到这些分支,但我们不会提升软件包版本或进行其他更改来改变 Spack 在发布分支中具体化依赖关系的方式。因此,您可以将 Spack 部署基于发布分支并git pull
来获取修复,而无需使用develop
附带的包改动。
最新版本始终可通过releases/latest
标签获得。
有关更多详细信息,请参阅有关版本的文档。
请注意,Spack 有行为准则。加入 Spack 社区即表示您同意遵守其规则。
非常感谢 Spack 的贡献者。
Spack 由 Todd Gamblin 创建,[email protected]。
如果您在出版物中引用 Spack,请引用以下论文:
在 GitHub 上,您可以通过“引用此存储库”按钮以 APA 或 BibTeX 格式复制此引文。或者,请参阅CITATION.cff
中原始 BibTeX 的注释。
Spack 根据 MIT 许可证和 Apache 许可证(版本 2.0)的条款进行分发。用户可以根据自己的选择选择任一许可证。
所有新的贡献都必须在 MIT 和 Apache-2.0 许可证下进行。
有关详细信息,请参阅 LICENSE-MIT、LICENSE-APACHE、COPYRIGHT 和 NOTICE。
SPDX 许可证标识符:(Apache-2.0 或 MIT)
LLNL-代码-811652