2015-10-18 18:45:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								============
							 
						 
					
						
							
								
									
										
										
										
											2014-01-13 05:10:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-05-09 15:18:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								[](https://travis-ci.org/LLNL/spack)
							 
						 
					
						
							
								
									
										
										
										
											2017-01-26 02:19:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								[](https://codecov.io/gh/LLNL/spack)
							 
						 
					
						
							
								
									
										
										
										
											2017-05-06 14:24:45 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								[](https://spack.readthedocs.io)
							 
						 
					
						
							
								
									
										
										
										
											2017-06-19 01:00:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								[](https://spackpm.herokuapp.com)
							 
						 
					
						
							
								
									
										
										
										
											2015-11-29 21:40:23 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-17 19:37:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Spack is a multi-platform package manager that builds and installs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								multiple versions and configurations of software. It works on Linux,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								macOS, and many supercomputers. Spack is non-destructive: installing a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								new version of a package does not break existing installations, so many
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								configurations of the same package can coexist.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Spack offers a simple "spec" syntax that allows users to specify versions
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								and configuration options. Package files are written in pure Python, and
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								specs allow package authors to write a single script for many different
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								builds of the same package.  With Spack, you can build your software
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								*all* the ways you want to.
							 
						 
					
						
							
								
									
										
										
										
											2014-01-13 05:10:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								See the
							 
						 
					
						
							
								
									
										
										
										
											2016-09-06 14:52:44 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								[Feature Overview ](http://spack.readthedocs.io/en/latest/features.html )
							 
						 
					
						
							
								
									
										
										
										
											2014-01-13 05:10:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								for examples and highlights.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-17 19:37:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								To install spack and your first package, make sure you have Python.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Then:
							 
						 
					
						
							
								
									
										
										
										
											2014-01-13 05:10:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-09 01:09:51 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								    $ git clone https://github.com/llnl/spack.git
							 
						 
					
						
							
								
									
										
										
										
											2014-01-13 05:10:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    $ cd spack/bin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    $ ./spack install libelf
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Documentation
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								----------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-30 21:19:31 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								[**Full documentation** ](http://spack.readthedocs.io/ ) for Spack is
							 
						 
					
						
							
								
									
										
										
										
											2015-11-28 19:25:53 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								the first place to look.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-17 19:37:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Try the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								[**Spack Tutorial** ](http://spack.readthedocs.io/en/latest/tutorial.html ),
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								to learn how to use spack, write packages, or deploy packages for users
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								at your site.
							 
						 
					
						
							
								
									
										
										
										
											2016-11-14 18:35:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-11-28 19:25:53 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								See also:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  *  [Technical paper ](http://www.computer.org/csdl/proceedings/sc/2015/3723/00/2807623.pdf ) and
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    [slides ](https://tgamblin.github.io/files/Gamblin-Spack-SC15-Talk.pdf ) on Spack's design and implementation.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  *  [Short presentation ](https://tgamblin.github.io/files/Gamblin-Spack-Lightning-Talk-BOF-SC15.pdf ) from the *Getting Scientific Software Installed*  BOF session at Supercomputing 2015.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-24 09:58:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Get Involved!
							 
						 
					
						
							
								
									
										
										
										
											2015-03-24 09:28:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-24 09:58:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Spack is an open source project.  Questions, discussion, and
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								contributions are welcome. Contributions can be anything from new
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								packages to bugfixes, or even new core features.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								### Mailing list
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-19 01:00:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								If you are interested in contributing to spack, join the mailing list.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								We're using Google Groups for this:
							 
						 
					
						
							
								
									
										
										
										
											2015-03-24 09:28:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-13 11:02:13 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								  *  [Spack Google Group ](https://groups.google.com/d/forum/spack )
							 
						 
					
						
							
								
									
										
										
										
											2015-03-24 09:28:47 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-19 01:00:40 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								### Slack channel
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Spack has a Slack channel where you can chat about all things Spack:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								  *  [Spack on Slack ](https://spackpm.slack.com )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								[Sign up here ](https://spackpm.herokuapp.com ) to get an invitation mailed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								to you.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-24 09:58:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								### Contributions
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-25 11:46:12 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Contributing to Spack is relatively easy.  Just send us a
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 12:54:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								[pull request ](https://help.github.com/articles/using-pull-requests/ ).
							 
						 
					
						
							
								
									
										
										
										
											2016-03-30 16:44:08 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								When you send your request, make ``develop` ` the destination branch on the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								[Spack repository ](https://github.com/LLNL/spack ).
							 
						 
					
						
							
								
									
										
										
										
											2015-03-24 09:58:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-10-14 11:16:13 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Your PR must pass Spack's unit tests and documentation tests, and must be
							 
						 
					
						
							
								
									
										
										
										
											2017-06-17 19:37:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								[PEP 8 ](https://www.python.org/dev/peps/pep-0008/ ) compliant.  We enforce
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								these guidelines with [Travis CI ](https://travis-ci.org/LLNL/spack ).  To
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								run these tests locally, and for helpful tips on git, see our
							 
						 
					
						
							
								
									
										
										
										
											2016-10-14 11:16:13 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								[Contribution Guide ](http://spack.readthedocs.io/en/latest/contribution_guide.html ).
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 12:54:42 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-17 19:37:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Spack uses a rough approximation of the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								[Git Flow ](http://nvie.com/posts/a-successful-git-branching-model/ )
							 
						 
					
						
							
								
									
										
										
										
											2015-03-24 09:58:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								branching model.  The ``develop` ` branch contains the latest
							 
						 
					
						
							
								
									
										
										
										
											2017-06-17 19:37:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								contributions, and ``master` ` is always tagged and points to the latest
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								stable release.
							 
						 
					
						
							
								
									
										
										
										
											2015-03-24 09:58:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-13 05:10:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Authors
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								----------------
							 
						 
					
						
							
								
									
										
										
										
											2015-12-09 01:09:51 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Many thanks go to Spack's [contributors ](https://github.com/llnl/spack/graphs/contributors ).
							 
						 
					
						
							
								
									
										
										
										
											2015-10-17 17:41:17 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-06-17 19:37:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Spack was created by Todd Gamblin, tgamblin@llnl .gov.
							 
						 
					
						
							
								
									
										
										
										
											2014-08-01 08:33:00 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-11-28 19:25:53 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								### Citing Spack
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								If you are referencing Spack in a publication, please cite the following paper:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								 *  Todd Gamblin, Matthew P. LeGendre, Michael R. Collette, Gregory L. Lee,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								   Adam Moody, Bronis R. de Supinski, and W. Scott Futral.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								   [**The Spack Package Manager: Bringing Order to HPC Software Chaos** ](http://www.computer.org/csdl/proceedings/sc/2015/3723/00/2807623.pdf ).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
										 
							
							
								   In *Supercomputing 2015 (SC’  , Austin, Texas, November 15-20 2015. LLNL-CONF-669890.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-01 08:33:00 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								Release
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								----------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								Spack is released under an LGPL license.  For more details see the
							 
						 
					
						
							
								
									
										
										
										
											2017-06-24 22:22:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								NOTICE and LICENSE files.
							 
						 
					
						
							
								
									
										
										
										
											2014-08-01 08:33:00 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								``LLNL-CODE-647188` `
							 
						 
					
						
							
								
									
										
										
										
											2017-06-17 19:37:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								