Search Docs by Keyword
Spack software package management
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 supercomputer centers, where many users and application teams share common installations of software on clusters with exotic architectures, using non-standard libraries. Spack is non-destructive: installing a new version does not break existing installations. In this way several 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 written in pure Python, and specs allow package authors to maintain a single file for many different builds of the same package.
To install Spack do:
git clone -c feature.manyFiles=true https://github.com/spack/spack.git
We recommend cloning into your lab directory on holylabs, or other lab storage if holylabs is not available, in a common directory (e.g.
/n/holylabs/LABS/jharvard_lab/Lab/software). This way you can have a collective Spack installation for your lab to use and you get the superior performance of holylabs over your home directory. Other locations work as well, but you should pick a location that has decent performance and is mounted to the entire cluster.
To setup Spack run
. share/spack/setup-env.sh. This will modify your environment and put spack in your path. If you want to have spack always on you will need to update your
|spack list||List all available packages|
|spack list <package>||List specific package|
|spack versions <package>||List available versions of package|
|spack install <package>||Install package|
|spack uninstall <package>||Remove package|
|spack find||List installed packages|
|spack load <package>||Load package for use|
|spack unload <package>||Unload package from environment|