A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
Go to file
George Todd Gamblin f7fe65102f Merge pull request #14 in SCALE/spack from features/compilers to develop
# By Todd Gamblin
# Via Todd Gamblin
* commit '33a11f32fdaea48192ecb13a85af11f85aa6b8bf': (21 commits)
  Multi-compiler support feature-complete.  Fix SPACK-3, SPACK-4, SPACK-12.
  Executables can optionally ignore error output.
  Enable allow_no_value for config parser.
  Make tests use mock compiler configuration.
  Set default editor to vi if EDITOR is not set.
  Add working_dir, Version back into package build namespace.
  Compiler support now uses configuration files.
  Make debug and verbose output work properly.
  Minor cleanup and bug fixes.
  Add support for configuration files.  Fix SPACK-24.
  Proper exiting for forked process in do_install()
  Move globals to spack's __init__.py
  Move globals to spack's __init__.py
  Adding per-compiler python files
  Initial ability to swap compilers.
  Better satisfies: e.g., v4.7.3 now satisfies v4.7
  Add CompilerSpec class and loading capability.
  Implemented compiler concretization policy.
  Sorted out spack.compilers vs var/spack/compilers
  Make Compiler constructor behave like Spec constructor.
  ...
2014-06-22 13:00:17 -07:00
bin Make debug and verbose output work properly. 2014-06-22 12:50:34 -07:00
lib/spack Multi-compiler support feature-complete. Fix SPACK-3, SPACK-4, SPACK-12. 2014-06-22 12:50:42 -07:00
var/spack Make tests use mock compiler configuration. 2014-06-22 12:50:35 -07:00
.gitignore Add support for configuration files. Fix SPACK-24. 2014-06-22 12:50:13 -07:00
LICENSE Add release number to docs and license. 2014-01-08 11:23:15 +01:00
README.md Add release number to README 2014-01-14 11:11:29 -08:00

Spack

Spack is a package management tool designed to support multiple versions and configurations of software on a wide variety of platforms and environments. It was designed for large supercomputing centers, where many users and application teams share common installations of software on clusters with exotic architectures, using libraries that do not have a standard ABI. Spack is non-destructive: installing a new version does not break existing installations, so many configurations can coexist on the same system.

Most importantly, Spack is simple. It offers a simple spec syntax so that users can specify versions and configuration options concisely. Spack is also simple for package authors: package files are writtin in pure Python, and specs allow package authors to write a single build script for many different builds of the same package.

See the Feature Overview for examples and highlights.

To install spack and install your first package:

$ git clone git@github.com:scalability-llnl/spack.git
$ cd spack/bin
$ ./spack install libelf

Documentation

Full documentation for Spack is also available.

Authors

Spack was written by Todd Gamblin, tgamblin@llnl.gov. LLNL-CODE-647188