Spack
What it is
Spack is a free package manager for installing scientific software on supercomputers and Linux, macOS, and Windows systems. It lets users choose package versions, compilers, target architectures, compile-time options, and direct or transitive dependencies. It can build software collections that combine Python or R packages with C, C++, or Fortran libraries. Each distinct package and dependency setup gets its own installation prefix, allowing multiple configurations to coexist without new installations disrupting existing ones. Users can install to a directory they choose without administrator privileges. Spack mainly builds customized software from source and also supports binary installations through build caches. It supports lockfiles, environment management, and private registries. Designed for supercomputing centers sharing installations across clusters and architectures, Spack also supports multiple versions, configurations, and compilers on one machine. Package recipes are Python scripts, and the spack create command generates starter boilerplate. Spack is available under either the MIT license or Apache License 2.0. Project support channels include documentation, Slack, Matrix, GitHub Discussions, and an announcements mailing list.
For and against
For
- Free package manager under MIT or Apache 2.0
- Supports Linux, macOS, Windows, and supercomputers
- Distinct configurations can coexist in separate prefixes
- Installs can run without administrator privileges
- Supports lockfiles and environment management
Against
- Primarily builds customized software from source
- Builds require choices for versions, compilers, or dependencies
The verdict
Spack provides detailed control over scientific software builds, with separate prefixes for distinct configurations. Its source-first approach and extensive configuration options are worth considering when choosing a package manager.
Who it suits
Spack suits scientific computing teams and users who need to manage configurable software builds across systems or architectures. It is designed with shared installations at large supercomputing centers in mind.
Plans and prices
Spack
Open source package manager
Read 8 Oct 2026 · github.com
On the record
- Build configurations
- It supports building packages with multiple versions, configurations, and compilers that can coexist on the same machine.spack.io · read 8 Oct 2026
- Build methods
- Spack primarily builds software from source and also supports binary installations through build caches.spack.io · read 8 Oct 2026
- Build signing
- Spack documentation includes build-cache signing and package-signing guidance, including a section on risks and threat models.spack.readthedocs.io · read 8 Oct 2026
- Coexisting installs
- Each unique package and dependency configuration gets its own prefix, allowing installations to coexist without new installs breaking existing ones.spack.io · read 8 Oct 2026
- Community support
- The project directs users to Slack, Matrix, GitHub Discussions, and an announcements mailing list.github.com · read 8 Oct 2026
- Configurable builds
- Users can specify package versions, compile-time options, target architectures, and compiler choices.spack.io · read 8 Oct 2026
- Customization
- Users can specify package versions, compile-time options, target architectures, and dependencies.spack.io · read 8 Oct 2026
- Dependency control
- Users can customize both direct and transitive dependencies of an installation.spack.io · read 8 Oct 2026
- Integrations
- Spack's services page lists GitLab, CDash, Grafana, Prometheus, and Metabase.spack.io · read 8 Oct 2026
- Intended users
- Spack was designed for large supercomputing centers where users and application teams share software installations across clusters and varied architectures.spack.readthedocs.io · read 8 Oct 2026
- Language support
- Spack can build stacks containing Python or R packages and link them to C, C++, or Fortran libraries.spack.io · read 8 Oct 2026
- License
- Spack is distributed under the MIT license or Apache License 2.0, at the user's option.github.com · read 8 Oct 2026
- Lockfile support
- Yesspack.io · read 20 Sep 2026
- Non-destructive installs
- Each unique package and dependency configuration is installed into its own prefix so new installs do not break existing ones.spack.io · read 8 Oct 2026
- Package authors
- Spack package recipes are Python scripts, and its spack create command generates starter boilerplate.spack.io · read 8 Oct 2026
- Purpose
- Spack is a package manager that makes installing scientific software easy on supercomputers, Linux, macOS, and Windows.spack.io · read 8 Oct 2026
- Security
- The project repository links to a security policy.github.com · read 8 Oct 2026
- Sources and binaries
- Spack primarily builds customized software from source and also supports binary installations through build caches.spack.io · read 8 Oct 2026