Basic Installation Tutorial

This tutorial will guide you through the process of installing software using Spack. We will first cover the spack install command, focusing on the power of the spec syntax and the flexibility it gives to users. We will also cover the spack find command for viewing installed packages and the spack uninstall command for uninstalling them. Finally, we will touch on how Spack manages compilers, especially as it relates to using Spack-built compilers within Spack. We will include full output from all of the commands demonstrated, although we will frequently call attention to only small portions of that output (or merely to the fact that it succeeded). The provided output is all from an AWS instance running Ubuntu 18.04.

Installing Spack

Spack works out of the box. Simply clone Spack to get going. We will clone Spack and immediately check out the most recent release, v0.19.

$ git clone -c feature.manyFiles=true https://github.com/spack/spack.git ~/spack
Cloning into '/home/spack1/spack'...
remote: Enumerating objects: 403295, done.K
remote: Counting objects: 100% (235/235), done.K
remote: Compressing objects: 100% (147/147), done.K
remote:nTotale4032959(delta993),4reused,1817(deltaB60),0pack-reused 403060K
Receiving objects: 100% (403295/403295), 203.42 MiB | 39.28 MiB/s, done.
Resolving deltas: 100% (162372/162372), done.
$ cd ~/spack
$ git checkout releases/v0.19
Branch 'releases/v0.19' set up to track remote branch 'releases/v0.19' from 'origin'.
Switched to a new branch 'releases/v0.19'

Next, add Spack to your path. Spack has some nice command-line integration tools, so instead of simply appending to your PATH variable, source the Spack setup script.

$ . share/spack/setup-env.sh

You’re good to go!

What is in Spack?

The spack list command shows available packages.

$ spack list
3dtk				librtlsdr				  py-ftfy			     r-exactextractr
3proxy				librttopo				  py-funcsigs			     r-exomecopy
7zip				libsakura				  py-functools32		     r-exomedepth
abacus				libsamplerate				  py-funcy			     r-experimenthub
abduco				libseccomp				  py-fury			     r-expint

The spack list command can also take a query string. Spack automatically adds wildcards to both ends of the string, or you can add your own wildcards. For example, we can view all available Python packages.

$ spack list 'py-*'
py-3to2 				  py-cssselect		       py-ipywidgets		      py-planet 		    py-rnc2rng
py-4suite-xml				  py-csvkit		       py-irpf90		      py-platformdirs		    py-robotframework
py-abcpy				  py-ctgan		       py-isal			      py-plotly 		    py-rope
py-abipy				  py-cudf		       py-iso8601		      py-plotnine		    py-rosdep
py-about-time				  py-cuml		       py-isodate		      py-pluggy 		    py-rosdistro

Installing Packages

Installing a package with Spack is very simple. To install a piece of software, simply type spack install <package_name>.

$ spack install zlib
==> Bootstrapping clingo from pre-built binaries
==> Fetching https://mirror.spack.io/bootstrap/github-actions/v0.4/build_cache/linux-centos7-x86_64-gcc-10.2.1-clingo-bootstrap-spack-prqkzynv2nwko5mktitebgkeumuxkveu.spec.json
==> Fetching https://mirror.spack.io/bootstrap/github-actions/v0.4/build_cache/linux-centos7-x86_64/gcc-10.2.1/clingo-bootstrap-spack/linux-centos7-x86_64-gcc-10.2.1-clingo-bootstrap-spack-prqkzynv2nwko5mktitebgkeumuxkveu.spack
==> Installing "clingo-bootstrap@spack%gcc@10.2.1~docs~ipo+python+static_libstdcpp build_type=Release arch=linux-centos7-x86_64" from a buildcache
==> Waiting for zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> Installing zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> No binary for zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6 found: installing from source
==> Fetching https://zlib.net/fossils/zlib-1.2.13.tar.gz
==> No patches needed for zlib
==> zlib: Executing phase: 'edit'
==> zlib: Executing phase: 'build'
==> zlib: Executing phase: 'install'
==> zlib: Successfully installed zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
  Fetch: 1.32s.  Build: 18.19s.  Total: 19.51s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6

Spack can install software either from source or from a binary cache. Packages in the binary cache are signed with GPG for security. For the tutorial we have prepared a binary cache so you don’t have to wait on slow compilation from source. To be able to install from the binary cache, we will need to configure Spack with the location of the binary cache and trust the GPG key that the binary cache was signed with.

$ spack mirror add tutorial /mirror
$ spack buildcache keys --install --trust
==> Fetching file:///mirror/build_cache/_pgp/2C8DD3224EF3573A42BD221FA8E0CA3C1C2ADA2F.pub
gpg: key A8E0CA3C1C2ADA2F: 7 signatures not checked due to missing keys
gpg: key A8E0CA3C1C2ADA2F: public key "Spack Project Official Binaries <maintainers@spack.io>" imported
gpg: Total number processed: 1
gpg:		   imported: 1
gpg: no ultimately trusted keys found
gpg: inserting ownertrust of 6

You’ll learn more about configuring Spack later in the tutorial, but for now you will be able to install the rest of the packages in the tutorial from a binary cache using the same spack install command. By default this will install the binary cached version if it exists and fall back on installing from source if it does not.

Spack’s spec syntax is the interface by which we can request specific configurations of the package. The % sigil is used to specify compilers.

$ spack install zlib %clang
==> Waiting for zlib-1.2.13-fdbomoa6xopqvfi4a7jvad27yinnw47a
==> Installing zlib-1.2.13-fdbomoa6xopqvfi4a7jvad27yinnw47a
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-clang-7.0.0-zlib-1.2.13-fdbomoa6xopqvfi4a7jvad27yinnw47a.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/clang-7.0.0/zlib-1.2.13/linux-ubuntu18.04-x86_64-clang-7.0.0-zlib-1.2.13-fdbomoa6xopqvfi4a7jvad27yinnw47a.spack
==> Extracting zlib-1.2.13-fdbomoa6xopqvfi4a7jvad27yinnw47a from binary cache
==> zlib: Successfully installed zlib-1.2.13-fdbomoa6xopqvfi4a7jvad27yinnw47a
  Fetch: 0.33s.  Build: 0.23s.	Total: 0.56s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/clang-7.0.0/zlib-1.2.13-fdbomoa6xopqvfi4a7jvad27yinnw47a

Note that this installation is located separately from the previous one. We will discuss this in more detail later, but this is part of what allows Spack to support arbitrarily versioned software.

You can check for particular versions before requesting them. We will use the spack versions command to see the available versions, and then install a different version of zlib.

$ spack versions zlib
==> Safe versions (already checksummed):
  1.2.13  1.2.12  1.2.11  1.2.8  1.2.3
==> Remote versions (not yet checksummed):
  1.2.10   1.2.7.1  1.2.5.3  1.2.4.5  1.2.4.1  1.2.3.7	1.2.3.3  1.2.2.3  1.2.1.2  1.2.0.7  1.2.0.3  1.1.4  1.1.0  1.0.6  1.0.1    0.94  0.79
  1.2.9    1.2.7    1.2.5.2  1.2.4.4  1.2.4    1.2.3.6	1.2.3.2  1.2.2.2  1.2.1.1  1.2.0.6  1.2.0.2  1.1.3  1.0.9  1.0.5  1.0-pre  0.93  0.71
  1.2.7.3  1.2.6.1  1.2.5.1  1.2.4.3  1.2.3.9  1.2.3.5	1.2.3.1  1.2.2.1  1.2.1    1.2.0.5  1.2.0.1  1.1.2  1.0.8  1.0.4  0.99	   0.92  0.9
  1.2.7.2  1.2.6    1.2.5    1.2.4.2  1.2.3.8  1.2.3.4	1.2.2.4  1.2.2	  1.2.0.8  1.2.0.4  1.2.0    1.1.1  1.0.7  1.0.2  0.95	   0.91  0.8

The @ sigil is used to specify versions, both of packages and of compilers.

$ spack install zlib@1.2.8
==> Waiting for zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm
==> Installing zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.8/linux-ubuntu18.04-x86_64-gcc-7.5.0-zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm.spack
==> Extracting zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm from binary cache
==> zlib: Successfully installed zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm
  Fetch: 0.41s.  Build: 0.23s.	Total: 0.64s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm
$ spack install zlib %gcc@6.5.0
==> Waiting for zlib-1.2.13-6izan4fn2f6zaycyq2iygye5b4lmfbdg
==> Installing zlib-1.2.13-6izan4fn2f6zaycyq2iygye5b4lmfbdg
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-6.5.0-zlib-1.2.13-6izan4fn2f6zaycyq2iygye5b4lmfbdg.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-6.5.0/zlib-1.2.13/linux-ubuntu18.04-x86_64-gcc-6.5.0-zlib-1.2.13-6izan4fn2f6zaycyq2iygye5b4lmfbdg.spack
==> Extracting zlib-1.2.13-6izan4fn2f6zaycyq2iygye5b4lmfbdg from binary cache
==> zlib: Successfully installed zlib-1.2.13-6izan4fn2f6zaycyq2iygye5b4lmfbdg
  Fetch: 0.37s.  Build: 0.23s.	Total: 0.60s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-6.5.0/zlib-1.2.13-6izan4fn2f6zaycyq2iygye5b4lmfbdg

The spec syntax also includes compiler flags. Spack accepts cppflags, cflags, cxxflags, fflags, ldflags, and ldlibs parameters. The values of these fields must be quoted on the command line if they include spaces. These values are injected into the compile line automatically by the Spack compiler wrappers.

$ spack install zlib@1.2.8 cppflags=-O3
==> Waiting for zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm

The spack find command is used to query installed packages. Note that some packages appear identical with the default output. The -l flag shows the hash of each package, and the -f flag shows any non-empty compiler flags of those packages.

$ spack find
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
zlib@1.2.13

-- linux-ubuntu18.04-x86_64 / gcc@6.5.0 -------------------------
zlib@1.2.13

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
zlib@1.2.8  zlib@1.2.13
==> 4 installed packages
$ spack find -lf
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
fdbomoa zlib@1.2.13%clang

-- linux-ubuntu18.04-x86_64 / gcc@6.5.0 -------------------------
6izan4f zlib@1.2.13%gcc

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
zqdhyiy zlib@1.2.8%gcc	cppflags="-O3"	 2hfr5rb zlib@1.2.13%gcc
==> 4 installed packages

Spack generates a hash for each spec. This hash is a function of the full provenance of the package, so any change to the spec affects the hash. Spack uses this value to compare specs and to generate unique installation directories for every combinatorial version. As we move into more complicated packages with software dependencies, we can see that Spack reuses existing packages to satisfy a dependency. By default, Spack tries hard to reuse existing installations as dependencies, either from a local store or from configured remote buildcaches. This minimizes unwanted rebuilds of common dependencies, in particular if you update Spack frequently.

$ spack install tcl
==> Waiting for zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> Waiting for tcl-8.6.12-v63n6wxe4a45dbmmpqbmjpfio3z7liej
==> Installing tcl-8.6.12-v63n6wxe4a45dbmmpqbmjpfio3z7liej
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-tcl-8.6.12-v63n6wxe4a45dbmmpqbmjpfio3z7liej.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/tcl-8.6.12/linux-ubuntu18.04-x86_64-gcc-7.5.0-tcl-8.6.12-v63n6wxe4a45dbmmpqbmjpfio3z7liej.spack
==> Extracting tcl-8.6.12-v63n6wxe4a45dbmmpqbmjpfio3z7liej from binary cache
==> tcl: Successfully installed tcl-8.6.12-v63n6wxe4a45dbmmpqbmjpfio3z7liej
  Fetch: 3.10s.  Build: 1.14s.	Total: 4.24s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tcl-8.6.12-v63n6wxe4a45dbmmpqbmjpfio3z7liej

Dependencies can be explicitly requested using the ^ sigil. Note that the spec syntax is recursive. Anything we could specify about the top-level package, we can also specify about a dependency using ^.

$ spack install tcl ^zlib@1.2.8 %clang
==> Waiting for zlib-1.2.8-2xcmtth3d7fjr56rn7hsvsfzwznvjrrd
==> Installing zlib-1.2.8-2xcmtth3d7fjr56rn7hsvsfzwznvjrrd
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-clang-7.0.0-zlib-1.2.8-2xcmtth3d7fjr56rn7hsvsfzwznvjrrd.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/clang-7.0.0/zlib-1.2.8/linux-ubuntu18.04-x86_64-clang-7.0.0-zlib-1.2.8-2xcmtth3d7fjr56rn7hsvsfzwznvjrrd.spack
==> Extracting zlib-1.2.8-2xcmtth3d7fjr56rn7hsvsfzwznvjrrd from binary cache
==> zlib: Successfully installed zlib-1.2.8-2xcmtth3d7fjr56rn7hsvsfzwznvjrrd
  Fetch: 0.12s.  Build: 0.23s.	Total: 0.35s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/clang-7.0.0/zlib-1.2.8-2xcmtth3d7fjr56rn7hsvsfzwznvjrrd
==> Waiting for tcl-8.6.12-36jwtbo5qcqulyxs5s43k774ty2ewu4e
==> Installing tcl-8.6.12-36jwtbo5qcqulyxs5s43k774ty2ewu4e
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-clang-7.0.0-tcl-8.6.12-36jwtbo5qcqulyxs5s43k774ty2ewu4e.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/clang-7.0.0/tcl-8.6.12/linux-ubuntu18.04-x86_64-clang-7.0.0-tcl-8.6.12-36jwtbo5qcqulyxs5s43k774ty2ewu4e.spack
==> Extracting tcl-8.6.12-36jwtbo5qcqulyxs5s43k774ty2ewu4e from binary cache
==> tcl: Successfully installed tcl-8.6.12-36jwtbo5qcqulyxs5s43k774ty2ewu4e
  Fetch: 2.54s.  Build: 1.17s.	Total: 3.71s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/clang-7.0.0/tcl-8.6.12-36jwtbo5qcqulyxs5s43k774ty2ewu4e

Packages can also be referred to from the command line by their package hash. Using the spack find -lf command earlier we saw that the hash of our optimized installation of zlib (cppflags="-O3") began with zqd. We can now explicitly build with that package without typing the entire spec, by using the / sigil to refer to it by hash. As with other tools like Git, you do not need to specify an entire hash on the command line. You can specify just enough digits to identify a hash uniquely. If a hash prefix is ambiguous (i.e., two or more installed packages share the prefix) then Spack will report an error.

$ spack install tcl ^/zqd
==> Waiting for zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm
==> Waiting for tcl-8.6.12-rakrbasefv2odpemtbrfn2qrbpeq4jip
==> Installing tcl-8.6.12-rakrbasefv2odpemtbrfn2qrbpeq4jip
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-tcl-8.6.12-rakrbasefv2odpemtbrfn2qrbpeq4jip.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/tcl-8.6.12/linux-ubuntu18.04-x86_64-gcc-7.5.0-tcl-8.6.12-rakrbasefv2odpemtbrfn2qrbpeq4jip.spack
==> Extracting tcl-8.6.12-rakrbasefv2odpemtbrfn2qrbpeq4jip from binary cache
==> tcl: Successfully installed tcl-8.6.12-rakrbasefv2odpemtbrfn2qrbpeq4jip
  Fetch: 2.85s.  Build: 1.23s.	Total: 4.08s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tcl-8.6.12-rakrbasefv2odpemtbrfn2qrbpeq4jip

The spack find command can also take a -d flag, which can show dependency information. Note that each package has a top-level entry, even if it also appears as a dependency.

$ spack find -ldf
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
36jwtbo tcl@8.6.12%clang
2xcmtth     zlib@1.2.8%clang

2xcmtth zlib@1.2.8%clang

fdbomoa zlib@1.2.13%clang


-- linux-ubuntu18.04-x86_64 / gcc@6.5.0 -------------------------
6izan4f zlib@1.2.13%gcc


-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
rakrbas tcl@8.6.12%gcc
zqdhyiy     zlib@1.2.8%gcc  cppflags="-O3"

v63n6wx tcl@8.6.12%gcc
2hfr5rb     zlib@1.2.13%gcc

zqdhyiy zlib@1.2.8%gcc	cppflags="-O3"

2hfr5rb zlib@1.2.13%gcc

==> 8 installed packages

Let’s move on to slightly more complicated packages. HDF5 is a good example of a more complicated package, with an MPI dependency. If we install it “out of the box,” it will build with OpenMPI.

$ spack install hdf5
==> Waiting for pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
==> Installing pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455.spack
==> Extracting pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455 from binary cache
==> pkgconf: Successfully installed pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
  Fetch: 0.36s.  Build: 0.24s.	Total: 0.60s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
==> Waiting for ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
==> Installing ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/ca-certificates-mozilla-2022-10-11/linux-ubuntu18.04-x86_64-gcc-7.5.0-ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj.spack
==> Extracting ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj from binary cache
==> ca-certificates-mozilla: Successfully installed ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
  Fetch: 0.20s.  Build: 0.23s.	Total: 0.43s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
==> Waiting for berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
==> Installing berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40/linux-ubuntu18.04-x86_64-gcc-7.5.0-berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4.spack
==> Extracting berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4 from binary cache
==> berkeley-db: Successfully installed berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
  Fetch: 0.51s.  Build: 0.31s.	Total: 0.82s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
==> Waiting for libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
==> Installing libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16/linux-ubuntu18.04-x86_64-gcc-7.5.0-libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq.spack
==> Extracting libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq from binary cache
==> libiconv: Successfully installed libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
  Fetch: 0.53s.  Build: 0.27s.	Total: 0.80s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
==> Waiting for zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> Waiting for libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
==> Installing libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libsigsegv-2.13/linux-ubuntu18.04-x86_64-gcc-7.5.0-libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf.spack
==> Extracting libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf from binary cache
==> libsigsegv: Successfully installed libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
  Fetch: 0.16s.  Build: 0.23s.	Total: 0.40s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
==> Waiting for util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
==> Installing util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-macros-1.19.3/linux-ubuntu18.04-x86_64-gcc-7.5.0-util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd.spack
==> Extracting util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd from binary cache
==> util-macros: Successfully installed util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
  Fetch: 0.12s.  Build: 0.23s.	Total: 0.34s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
==> Waiting for xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
==> Installing xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/xz-5.2.7/linux-ubuntu18.04-x86_64-gcc-7.5.0-xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau.spack
==> Extracting xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau from binary cache
==> xz: Successfully installed xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
  Fetch: 0.23s.  Build: 0.28s.	Total: 0.51s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
==> Waiting for zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
==> Installing zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/zstd-1.5.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu.spack
==> Extracting zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu from binary cache
==> zstd: Successfully installed zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
  Fetch: 0.26s.  Build: 0.27s.	Total: 0.52s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
==> Waiting for ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
==> Installing ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3/linux-ubuntu18.04-x86_64-gcc-7.5.0-ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf.spack
==> Extracting ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf from binary cache
==> ncurses: Successfully installed ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
  Fetch: 1.93s.  Build: 0.69s.	Total: 2.62s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
==> Waiting for diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
==> Installing diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8/linux-ubuntu18.04-x86_64-gcc-7.5.0-diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s.spack
==> Extracting diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s from binary cache
==> diffutils: Successfully installed diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
  Fetch: 0.36s.  Build: 0.27s.	Total: 0.63s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
==> Waiting for pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
==> Installing pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/pigz-2.7/linux-ubuntu18.04-x86_64-gcc-7.5.0-pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3.spack
==> Extracting pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3 from binary cache
==> pigz: Successfully installed pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
  Fetch: 0.13s.  Build: 0.23s.	Total: 0.36s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
==> Waiting for libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
==> Installing libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libxml2-2.10.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e.spack
==> Extracting libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e from binary cache
==> libxml2: Successfully installed libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
  Fetch: 0.59s.  Build: 0.32s.	Total: 0.92s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
==> Waiting for libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
==> Installing libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libedit-3.1-20210216/linux-ubuntu18.04-x86_64-gcc-7.5.0-libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76.spack
==> Extracting libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76 from binary cache
==> libedit: Successfully installed libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
  Fetch: 0.32s.  Build: 0.26s.	Total: 0.58s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
==> Waiting for readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
==> Installing readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa.spack
==> Extracting readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa from binary cache
==> readline: Successfully installed readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
  Fetch: 0.50s.  Build: 0.27s.	Total: 0.77s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
==> Waiting for m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
==> Installing m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/m4-1.4.19/linux-ubuntu18.04-x86_64-gcc-7.5.0-m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b.spack
==> Extracting m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b from binary cache
==> m4: Successfully installed m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
  Fetch: 0.31s.  Build: 0.26s.	Total: 0.57s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
==> Waiting for bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
==> Installing bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8/linux-ubuntu18.04-x86_64-gcc-7.5.0-bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6.spack
==> Extracting bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6 from binary cache
==> bzip2: Successfully installed bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
  Fetch: 0.02s.  Build: 0.24s.	Total: 0.26s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
==> Waiting for gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
==> Installing gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23/linux-ubuntu18.04-x86_64-gcc-7.5.0-gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq.spack
==> Extracting gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq from binary cache
==> gdbm: Successfully installed gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
  Fetch: 0.33s.  Build: 0.27s.	Total: 0.59s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
==> Waiting for libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
==> Installing libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libtool-2.4.7/linux-ubuntu18.04-x86_64-gcc-7.5.0-libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz.spack
==> Extracting libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz from binary cache
==> libtool: Successfully installed libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
  Fetch: 0.09s.  Build: 0.26s.	Total: 0.35s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
==> Waiting for tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
==> Installing tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/tar-1.34/linux-ubuntu18.04-x86_64-gcc-7.5.0-tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w.spack
==> Extracting tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w from binary cache
==> tar: Successfully installed tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
  Fetch: 0.43s.  Build: 0.31s.	Total: 0.74s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
==> Waiting for perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
==> Installing perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5.spack
==> Extracting perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5 from binary cache
==> perl: Successfully installed perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
  Fetch: 2.92s.  Build: 1.35s.	Total: 4.27s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
==> Waiting for libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
==> Installing libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libpciaccess-0.16/linux-ubuntu18.04-x86_64-gcc-7.5.0-libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23.spack
==> Extracting libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23 from binary cache
==> libpciaccess: Successfully installed libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
  Fetch: 0.02s.  Build: 0.24s.	Total: 0.26s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
==> Waiting for gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
==> Installing gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/gettext-0.21.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu.spack
==> Extracting gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu from binary cache
==> gettext: Successfully installed gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
  Fetch: 2.46s.  Build: 0.88s.	Total: 3.34s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
==> Waiting for bison-3.8.2-kxbisdgbfdep575ib3o6kxngzgkhdkzg
==> Installing bison-3.8.2-kxbisdgbfdep575ib3o6kxngzgkhdkzg
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-bison-3.8.2-kxbisdgbfdep575ib3o6kxngzgkhdkzg.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/bison-3.8.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-bison-3.8.2-kxbisdgbfdep575ib3o6kxngzgkhdkzg.spack
==> Extracting bison-3.8.2-kxbisdgbfdep575ib3o6kxngzgkhdkzg from binary cache
==> bison: Successfully installed bison-3.8.2-kxbisdgbfdep575ib3o6kxngzgkhdkzg
  Fetch: 0.45s.  Build: 0.33s.	Total: 0.78s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bison-3.8.2-kxbisdgbfdep575ib3o6kxngzgkhdkzg
==> Waiting for openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
==> Installing openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssl-1.1.1s/linux-ubuntu18.04-x86_64-gcc-7.5.0-openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm.spack
==> Extracting openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm from binary cache
==> openssl: Successfully installed openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
  Fetch: 0.93s.  Build: 0.38s.	Total: 1.31s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
==> Waiting for autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
==> Installing autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/autoconf-2.69/linux-ubuntu18.04-x86_64-gcc-7.5.0-autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr.spack
==> Extracting autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr from binary cache
==> autoconf: Successfully installed autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
  Fetch: 0.03s.  Build: 0.27s.	Total: 0.30s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
==> Waiting for hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
==> Installing hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/hwloc-2.8.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq.spack
==> Extracting hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq from binary cache
==> hwloc: Successfully installed hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
  Fetch: 1.13s.  Build: 0.41s.	Total: 1.54s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
==> Waiting for cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
==> Installing cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/cmake-3.24.3/linux-ubuntu18.04-x86_64-gcc-7.5.0-cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva.spack
==> Extracting cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva from binary cache
==> cmake: Successfully installed cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
  Fetch: 5.79s.  Build: 1.09s.	Total: 6.88s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
==> Waiting for krb5-1.19.3-oc246vidm3aae72zpuxzubvpsgvtsbxg
==> Installing krb5-1.19.3-oc246vidm3aae72zpuxzubvpsgvtsbxg
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-krb5-1.19.3-oc246vidm3aae72zpuxzubvpsgvtsbxg.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/krb5-1.19.3/linux-ubuntu18.04-x86_64-gcc-7.5.0-krb5-1.19.3-oc246vidm3aae72zpuxzubvpsgvtsbxg.spack
==> Extracting krb5-1.19.3-oc246vidm3aae72zpuxzubvpsgvtsbxg from binary cache
==> krb5: Successfully installed krb5-1.19.3-oc246vidm3aae72zpuxzubvpsgvtsbxg
  Fetch: 1.05s.  Build: 0.47s.	Total: 1.52s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/krb5-1.19.3-oc246vidm3aae72zpuxzubvpsgvtsbxg
==> Waiting for libevent-2.1.12-ule2pilocxwpbqtu746syxq6p5wuhndf
==> Installing libevent-2.1.12-ule2pilocxwpbqtu746syxq6p5wuhndf
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libevent-2.1.12-ule2pilocxwpbqtu746syxq6p5wuhndf.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libevent-2.1.12/linux-ubuntu18.04-x86_64-gcc-7.5.0-libevent-2.1.12-ule2pilocxwpbqtu746syxq6p5wuhndf.spack
==> Extracting libevent-2.1.12-ule2pilocxwpbqtu746syxq6p5wuhndf from binary cache
==> libevent: Successfully installed libevent-2.1.12-ule2pilocxwpbqtu746syxq6p5wuhndf
  Fetch: 0.68s.  Build: 0.33s.	Total: 1.01s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libevent-2.1.12-ule2pilocxwpbqtu746syxq6p5wuhndf
==> Waiting for automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
==> Installing automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/automake-1.16.5/linux-ubuntu18.04-x86_64-gcc-7.5.0-automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q.spack
==> Extracting automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q from binary cache
==> automake: Successfully installed automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
  Fetch: 0.14s.  Build: 0.27s.	Total: 0.41s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
==> Waiting for openssh-9.1p1-e4esedlbiusyosdimlwp6lc2wqvdxji7
==> Installing openssh-9.1p1-e4esedlbiusyosdimlwp6lc2wqvdxji7
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-openssh-9.1p1-e4esedlbiusyosdimlwp6lc2wqvdxji7.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssh-9.1p1/linux-ubuntu18.04-x86_64-gcc-7.5.0-openssh-9.1p1-e4esedlbiusyosdimlwp6lc2wqvdxji7.spack
==> Extracting openssh-9.1p1-e4esedlbiusyosdimlwp6lc2wqvdxji7 from binary cache
==> openssh: Successfully installed openssh-9.1p1-e4esedlbiusyosdimlwp6lc2wqvdxji7
  Fetch: 0.54s.  Build: 0.52s.	Total: 1.05s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssh-9.1p1-e4esedlbiusyosdimlwp6lc2wqvdxji7
==> Waiting for pmix-4.1.2-optdpo7xdafhkbn7wg34nrxos6ypvabi
==> Installing pmix-4.1.2-optdpo7xdafhkbn7wg34nrxos6ypvabi
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-pmix-4.1.2-optdpo7xdafhkbn7wg34nrxos6ypvabi.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/pmix-4.1.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-pmix-4.1.2-optdpo7xdafhkbn7wg34nrxos6ypvabi.spack
==> Extracting pmix-4.1.2-optdpo7xdafhkbn7wg34nrxos6ypvabi from binary cache
==> pmix: Successfully installed pmix-4.1.2-optdpo7xdafhkbn7wg34nrxos6ypvabi
  Fetch: 0.70s.  Build: 0.36s.	Total: 1.06s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pmix-4.1.2-optdpo7xdafhkbn7wg34nrxos6ypvabi
==> Waiting for numactl-2.0.14-l566d6cppqee7xyrx6yit5g2xywbvoyo
==> Installing numactl-2.0.14-l566d6cppqee7xyrx6yit5g2xywbvoyo
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-numactl-2.0.14-l566d6cppqee7xyrx6yit5g2xywbvoyo.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/numactl-2.0.14/linux-ubuntu18.04-x86_64-gcc-7.5.0-numactl-2.0.14-l566d6cppqee7xyrx6yit5g2xywbvoyo.spack
==> Extracting numactl-2.0.14-l566d6cppqee7xyrx6yit5g2xywbvoyo from binary cache
==> numactl: Successfully installed numactl-2.0.14-l566d6cppqee7xyrx6yit5g2xywbvoyo
  Fetch: 0.20s.  Build: 0.26s.	Total: 0.46s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/numactl-2.0.14-l566d6cppqee7xyrx6yit5g2xywbvoyo
==> Waiting for openmpi-4.1.4-ilnrdw5772nw64ac6bkassqbmi7h2hgq
==> Installing openmpi-4.1.4-ilnrdw5772nw64ac6bkassqbmi7h2hgq
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-openmpi-4.1.4-ilnrdw5772nw64ac6bkassqbmi7h2hgq.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4/linux-ubuntu18.04-x86_64-gcc-7.5.0-openmpi-4.1.4-ilnrdw5772nw64ac6bkassqbmi7h2hgq.spack
==> Extracting openmpi-4.1.4-ilnrdw5772nw64ac6bkassqbmi7h2hgq from binary cache
==> openmpi: Successfully installed openmpi-4.1.4-ilnrdw5772nw64ac6bkassqbmi7h2hgq
  Fetch: 1.76s.  Build: 0.66s.	Total: 2.42s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-ilnrdw5772nw64ac6bkassqbmi7h2hgq
==> Waiting for hdf5-1.12.2-ty2m35svoa6x7ro7nrvqoxisqwbzp2f3
==> Installing hdf5-1.12.2-ty2m35svoa6x7ro7nrvqoxisqwbzp2f3
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-hdf5-1.12.2-ty2m35svoa6x7ro7nrvqoxisqwbzp2f3.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/hdf5-1.12.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-hdf5-1.12.2-ty2m35svoa6x7ro7nrvqoxisqwbzp2f3.spack
==> Extracting hdf5-1.12.2-ty2m35svoa6x7ro7nrvqoxisqwbzp2f3 from binary cache
==> hdf5: Successfully installed hdf5-1.12.2-ty2m35svoa6x7ro7nrvqoxisqwbzp2f3
  Fetch: 27.01s.  Build: 3.74s.  Total: 30.75s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hdf5-1.12.2-ty2m35svoa6x7ro7nrvqoxisqwbzp2f3

Spack packages can also have build options, called variants. Boolean variants can be specified using the + (enable) and ~ or - (disable) sigils. There are two sigils for “disable” to avoid conflicts with shell parsing in different situations. Variants (boolean or otherwise) can also be specified using the same syntax as compiler flags. Here we can install HDF5 without MPI support.

$ spack install hdf5~mpi
==> Waiting for pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
==> Waiting for ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
==> Waiting for berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
==> Waiting for libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
==> Waiting for zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> Waiting for ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
==> Waiting for diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
==> Waiting for readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
==> Waiting for bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
==> Waiting for gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
==> Waiting for perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
==> Waiting for openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
==> Waiting for cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
==> Waiting for hdf5-1.12.2-6w4y2274lydtrgafuxq4gknrgvfg7kpj
==> Installing hdf5-1.12.2-6w4y2274lydtrgafuxq4gknrgvfg7kpj
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-hdf5-1.12.2-6w4y2274lydtrgafuxq4gknrgvfg7kpj.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/hdf5-1.12.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-hdf5-1.12.2-6w4y2274lydtrgafuxq4gknrgvfg7kpj.spack
==> Extracting hdf5-1.12.2-6w4y2274lydtrgafuxq4gknrgvfg7kpj from binary cache
==> hdf5: Successfully installed hdf5-1.12.2-6w4y2274lydtrgafuxq4gknrgvfg7kpj
  Fetch: 23.99s.  Build: 2.94s.  Total: 26.93s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hdf5-1.12.2-6w4y2274lydtrgafuxq4gknrgvfg7kpj

We might also want to install HDF5 with a different MPI implementation. While MPI is not a package itself, packages can depend on abstract interfaces like MPI. Spack handles these through “virtual dependencies.” A package, such as HDF5, can depend on the MPI interface. Other packages (openmpi, mpich, mvapich2, etc.) provide the MPI interface. Any of these providers can be requested for an MPI dependency. For example, we can build HDF5 with MPI support provided by MPICH by specifying a dependency on mpich. Spack also supports versioning of virtual dependencies. A package can depend on the MPI interface at version 3, and provider packages specify what version of the interface they provide. The partial spec ^mpi@3 can be satisfied by any of several providers.

$ spack install hdf5+hl+mpi ^mpich
==> Waiting for pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
==> Waiting for ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
==> Waiting for berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
==> Waiting for libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
==> Waiting for zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> Waiting for findutils-4.9.0-fxoomycyzatn7nzlioglzjir3lgs5kuk
==> Installing findutils-4.9.0-fxoomycyzatn7nzlioglzjir3lgs5kuk
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-findutils-4.9.0-fxoomycyzatn7nzlioglzjir3lgs5kuk.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/findutils-4.9.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-findutils-4.9.0-fxoomycyzatn7nzlioglzjir3lgs5kuk.spack
==> Extracting findutils-4.9.0-fxoomycyzatn7nzlioglzjir3lgs5kuk from binary cache
==> findutils: Successfully installed findutils-4.9.0-fxoomycyzatn7nzlioglzjir3lgs5kuk
  Fetch: 0.52s.  Build: 0.29s.	Total: 0.81s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/findutils-4.9.0-fxoomycyzatn7nzlioglzjir3lgs5kuk
==> Waiting for libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
==> Waiting for util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
==> Waiting for xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
==> Waiting for libfabric-1.16.1-u2kjaxdisx652qhefe2ibofiewkdgstr
==> Installing libfabric-1.16.1-u2kjaxdisx652qhefe2ibofiewkdgstr
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libfabric-1.16.1-u2kjaxdisx652qhefe2ibofiewkdgstr.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libfabric-1.16.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-libfabric-1.16.1-u2kjaxdisx652qhefe2ibofiewkdgstr.spack
==> Extracting libfabric-1.16.1-u2kjaxdisx652qhefe2ibofiewkdgstr from binary cache
==> libfabric: Successfully installed libfabric-1.16.1-u2kjaxdisx652qhefe2ibofiewkdgstr
  Fetch: 0.27s.  Build: 0.28s.	Total: 0.55s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libfabric-1.16.1-u2kjaxdisx652qhefe2ibofiewkdgstr
==> Waiting for libmd-1.0.4-miq3rrs534mewt3w5r3wd5jp3lkk7y25
==> Installing libmd-1.0.4-miq3rrs534mewt3w5r3wd5jp3lkk7y25
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libmd-1.0.4-miq3rrs534mewt3w5r3wd5jp3lkk7y25.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libmd-1.0.4/linux-ubuntu18.04-x86_64-gcc-7.5.0-libmd-1.0.4-miq3rrs534mewt3w5r3wd5jp3lkk7y25.spack
==> Extracting libmd-1.0.4-miq3rrs534mewt3w5r3wd5jp3lkk7y25 from binary cache
==> libmd: Successfully installed libmd-1.0.4-miq3rrs534mewt3w5r3wd5jp3lkk7y25
  Fetch: 0.13s.  Build: 0.25s.	Total: 0.37s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libmd-1.0.4-miq3rrs534mewt3w5r3wd5jp3lkk7y25
==> Waiting for zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
==> Waiting for libffi-3.4.2-qzq4b7hjmtrswtnnezcytreqg4vtsgi5
==> Installing libffi-3.4.2-qzq4b7hjmtrswtnnezcytreqg4vtsgi5
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libffi-3.4.2-qzq4b7hjmtrswtnnezcytreqg4vtsgi5.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libffi-3.4.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-libffi-3.4.2-qzq4b7hjmtrswtnnezcytreqg4vtsgi5.spack
==> Extracting libffi-3.4.2-qzq4b7hjmtrswtnnezcytreqg4vtsgi5 from binary cache
==> libffi: Successfully installed libffi-3.4.2-qzq4b7hjmtrswtnnezcytreqg4vtsgi5
  Fetch: 0.17s.  Build: 0.24s.	Total: 0.41s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libffi-3.4.2-qzq4b7hjmtrswtnnezcytreqg4vtsgi5
==> Waiting for ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
==> Waiting for util-linux-uuid-2.38.1-eayyoxjdfrc2wivabs5jbipcofeluyyo
==> Installing util-linux-uuid-2.38.1-eayyoxjdfrc2wivabs5jbipcofeluyyo
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-util-linux-uuid-2.38.1-eayyoxjdfrc2wivabs5jbipcofeluyyo.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-linux-uuid-2.38.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-util-linux-uuid-2.38.1-eayyoxjdfrc2wivabs5jbipcofeluyyo.spack
==> Extracting util-linux-uuid-2.38.1-eayyoxjdfrc2wivabs5jbipcofeluyyo from binary cache
==> util-linux-uuid: Successfully installed util-linux-uuid-2.38.1-eayyoxjdfrc2wivabs5jbipcofeluyyo
  Fetch: 0.71s.  Build: 0.33s.	Total: 1.04s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-linux-uuid-2.38.1-eayyoxjdfrc2wivabs5jbipcofeluyyo
==> Waiting for diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
==> Waiting for pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
==> Waiting for libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
==> Waiting for libbsd-0.11.5-qieib3tiyp74ps4kn3jail7bot35t7hp
==> Installing libbsd-0.11.5-qieib3tiyp74ps4kn3jail7bot35t7hp
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libbsd-0.11.5-qieib3tiyp74ps4kn3jail7bot35t7hp.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libbsd-0.11.5/linux-ubuntu18.04-x86_64-gcc-7.5.0-libbsd-0.11.5-qieib3tiyp74ps4kn3jail7bot35t7hp.spack
==> Extracting libbsd-0.11.5-qieib3tiyp74ps4kn3jail7bot35t7hp from binary cache
==> libbsd: Successfully installed libbsd-0.11.5-qieib3tiyp74ps4kn3jail7bot35t7hp
  Fetch: 0.03s.  Build: 0.27s.	Total: 0.30s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libbsd-0.11.5-qieib3tiyp74ps4kn3jail7bot35t7hp
==> Waiting for readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
==> Waiting for bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
==> Waiting for m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
==> Waiting for expat-2.4.8-j5k5nzgsbhue6ylglt4gtrnm6okuvsj6
==> Installing expat-2.4.8-j5k5nzgsbhue6ylglt4gtrnm6okuvsj6
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-expat-2.4.8-j5k5nzgsbhue6ylglt4gtrnm6okuvsj6.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/expat-2.4.8/linux-ubuntu18.04-x86_64-gcc-7.5.0-expat-2.4.8-j5k5nzgsbhue6ylglt4gtrnm6okuvsj6.spack
==> Extracting expat-2.4.8-j5k5nzgsbhue6ylglt4gtrnm6okuvsj6 from binary cache
==> expat: Successfully installed expat-2.4.8-j5k5nzgsbhue6ylglt4gtrnm6okuvsj6
  Fetch: 0.17s.  Build: 0.27s.	Total: 0.44s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/expat-2.4.8-j5k5nzgsbhue6ylglt4gtrnm6okuvsj6
==> Waiting for gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
==> Waiting for sqlite-3.39.4-vmf7qax3kowjkec5bzohcqvo5rqgm3xx
==> Installing sqlite-3.39.4-vmf7qax3kowjkec5bzohcqvo5rqgm3xx
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-sqlite-3.39.4-vmf7qax3kowjkec5bzohcqvo5rqgm3xx.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/sqlite-3.39.4/linux-ubuntu18.04-x86_64-gcc-7.5.0-sqlite-3.39.4-vmf7qax3kowjkec5bzohcqvo5rqgm3xx.spack
==> Extracting sqlite-3.39.4-vmf7qax3kowjkec5bzohcqvo5rqgm3xx from binary cache
==> sqlite: Successfully installed sqlite-3.39.4-vmf7qax3kowjkec5bzohcqvo5rqgm3xx
  Fetch: 1.76s.  Build: 0.45s.	Total: 2.22s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/sqlite-3.39.4-vmf7qax3kowjkec5bzohcqvo5rqgm3xx
==> Waiting for tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
==> Waiting for libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
==> Waiting for perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
==> Waiting for gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
==> Waiting for libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
==> Waiting for openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
==> Waiting for autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
==> Waiting for hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
==> Waiting for cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
==> Waiting for python-3.10.8-wvhlgddicoh3nqgeusdnal356lk55ckf
==> Installing python-3.10.8-wvhlgddicoh3nqgeusdnal356lk55ckf
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-python-3.10.8-wvhlgddicoh3nqgeusdnal356lk55ckf.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/python-3.10.8/linux-ubuntu18.04-x86_64-gcc-7.5.0-python-3.10.8-wvhlgddicoh3nqgeusdnal356lk55ckf.spack
==> Extracting python-3.10.8-wvhlgddicoh3nqgeusdnal356lk55ckf from binary cache
==> python: Successfully installed python-3.10.8-wvhlgddicoh3nqgeusdnal356lk55ckf
  Fetch: 10.97s.  Build: 3.07s.  Total: 14.03s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/python-3.10.8-wvhlgddicoh3nqgeusdnal356lk55ckf
==> Waiting for automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
==> Waiting for yaksa-0.2-brpp4ktzdureirvmryq3csivcvglrkdx
==> Installing yaksa-0.2-brpp4ktzdureirvmryq3csivcvglrkdx
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-yaksa-0.2-brpp4ktzdureirvmryq3csivcvglrkdx.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/yaksa-0.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-yaksa-0.2-brpp4ktzdureirvmryq3csivcvglrkdx.spack
==> Extracting yaksa-0.2-brpp4ktzdureirvmryq3csivcvglrkdx from binary cache
==> yaksa: Successfully installed yaksa-0.2-brpp4ktzdureirvmryq3csivcvglrkdx
  Fetch: 3.33s.  Build: 0.72s.	Total: 4.05s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/yaksa-0.2-brpp4ktzdureirvmryq3csivcvglrkdx
==> Waiting for mpich-4.0.2-6bu5phw7dhguzbqpmjifnowses5rptmz
==> Installing mpich-4.0.2-6bu5phw7dhguzbqpmjifnowses5rptmz
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-mpich-4.0.2-6bu5phw7dhguzbqpmjifnowses5rptmz.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/mpich-4.0.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-mpich-4.0.2-6bu5phw7dhguzbqpmjifnowses5rptmz.spack
==> Extracting mpich-4.0.2-6bu5phw7dhguzbqpmjifnowses5rptmz from binary cache
==> mpich: Successfully installed mpich-4.0.2-6bu5phw7dhguzbqpmjifnowses5rptmz
  Fetch: 3.17s.  Build: 1.19s.	Total: 4.36s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/mpich-4.0.2-6bu5phw7dhguzbqpmjifnowses5rptmz
==> Waiting for hdf5-1.12.2-7bnbpj2kq46c7dmdo7j6m63c5pxyaib5
==> Installing hdf5-1.12.2-7bnbpj2kq46c7dmdo7j6m63c5pxyaib5
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-hdf5-1.12.2-7bnbpj2kq46c7dmdo7j6m63c5pxyaib5.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/hdf5-1.12.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-hdf5-1.12.2-7bnbpj2kq46c7dmdo7j6m63c5pxyaib5.spack
==> Extracting hdf5-1.12.2-7bnbpj2kq46c7dmdo7j6m63c5pxyaib5 from binary cache
==> hdf5: Successfully installed hdf5-1.12.2-7bnbpj2kq46c7dmdo7j6m63c5pxyaib5
  Fetch: 29.14s.  Build: 4.12s.  Total: 33.26s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hdf5-1.12.2-7bnbpj2kq46c7dmdo7j6m63c5pxyaib5

We’ll do a quick check in on what we have installed so far.

$ spack find -ldf
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
36jwtbo tcl@8.6.12%clang
2xcmtth     zlib@1.2.8%clang

2xcmtth zlib@1.2.8%clang

fdbomoa zlib@1.2.13%clang


-- linux-ubuntu18.04-x86_64 / gcc@6.5.0 -------------------------
6izan4f zlib@1.2.13%gcc


-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
qdpipdf autoconf@2.69%gcc
z7d5q4f     m4@1.4.19%gcc
c3uhkcj 	diffutils@3.8%gcc
ltvovvv 	    libiconv@1.16%gcc
e262sf6 	libsigsegv@2.13%gcc
4ebutg2     perl@5.36.0%gcc
53fb72w 	berkeley-db@18.1.40%gcc
cxcreln 	bzip2@1.0.8%gcc
cpmynty 	gdbm@1.23%gcc
kgyvtw5 	    readline@8.1.2%gcc
zcuawli 		ncurses@6.3%gcc
k2lfw6f 		    pkgconf@1.8.0%gcc
2hfr5rb 	zlib@1.2.13%gcc

l7j5vdr automake@1.16.5%gcc
qdpipdf     autoconf@2.69%gcc
z7d5q4f 	m4@1.4.19%gcc
c3uhkcj 	    diffutils@3.8%gcc
ltvovvv 		libiconv@1.16%gcc
e262sf6 	    libsigsegv@2.13%gcc
4ebutg2     perl@5.36.0%gcc
53fb72w 	berkeley-db@18.1.40%gcc
cxcreln 	bzip2@1.0.8%gcc
cpmynty 	gdbm@1.23%gcc
kgyvtw5 	    readline@8.1.2%gcc
zcuawli 		ncurses@6.3%gcc
k2lfw6f 		    pkgconf@1.8.0%gcc
2hfr5rb 	zlib@1.2.13%gcc

53fb72w berkeley-db@18.1.40%gcc

kxbisdg bison@3.8.2%gcc
c3uhkcj     diffutils@3.8%gcc
ltvovvv 	libiconv@1.16%gcc
z7d5q4f     m4@1.4.19%gcc
e262sf6 	libsigsegv@2.13%gcc
4ebutg2     perl@5.36.0%gcc
53fb72w 	berkeley-db@18.1.40%gcc
cxcreln 	bzip2@1.0.8%gcc
cpmynty 	gdbm@1.23%gcc
kgyvtw5 	    readline@8.1.2%gcc
zcuawli 		ncurses@6.3%gcc
k2lfw6f 		    pkgconf@1.8.0%gcc
2hfr5rb 	zlib@1.2.13%gcc

cxcreln bzip2@1.0.8%gcc
c3uhkcj     diffutils@3.8%gcc
ltvovvv 	libiconv@1.16%gcc

aurd37j ca-certificates-mozilla@2022-10-11%gcc

jrlhw77 cmake@3.24.3%gcc
zcuawli     ncurses@6.3%gcc
k2lfw6f 	pkgconf@1.8.0%gcc
uwlw4wr     openssl@1.1.1s%gcc
aurd37j 	ca-certificates-mozilla@2022-10-11%gcc
4ebutg2 	perl@5.36.0%gcc
53fb72w 	    berkeley-db@18.1.40%gcc
cxcreln 	    bzip2@1.0.8%gcc
c3uhkcj 		diffutils@3.8%gcc
ltvovvv 		    libiconv@1.16%gcc
cpmynty 	    gdbm@1.23%gcc
kgyvtw5 		readline@8.1.2%gcc
2hfr5rb 	zlib@1.2.13%gcc

c3uhkcj diffutils@3.8%gcc
ltvovvv     libiconv@1.16%gcc

j5k5nzg expat@2.4.8%gcc
qieib3t     libbsd@0.11.5%gcc
miq3rrs 	libmd@1.0.4%gcc

fxoomyc findutils@4.9.0%gcc

cpmynty gdbm@1.23%gcc
kgyvtw5     readline@8.1.2%gcc
zcuawli 	ncurses@6.3%gcc
k2lfw6f 	    pkgconf@1.8.0%gcc

hj6szik gettext@0.21.1%gcc
cxcreln     bzip2@1.0.8%gcc
c3uhkcj 	diffutils@3.8%gcc
ltvovvv     libiconv@1.16%gcc
4aq5aj2     libxml2@2.10.1%gcc
k2lfw6f 	pkgconf@1.8.0%gcc
2hfr5rb 	zlib@1.2.13%gcc
zcuawli     ncurses@6.3%gcc
kawegoy     tar@1.34%gcc
wod35ny 	pigz@2.7%gcc
fprmzmo 	zstd@1.5.2%gcc
nrwxyth     xz@5.2.7%gcc

6w4y227 hdf5@1.12.2%gcc
jrlhw77     cmake@3.24.3%gcc
zcuawli 	ncurses@6.3%gcc
uwlw4wr 	openssl@1.1.1s%gcc
aurd37j 	    ca-certificates-mozilla@2022-10-11%gcc
4ebutg2 	    perl@5.36.0%gcc
53fb72w 		berkeley-db@18.1.40%gcc
cxcreln 		bzip2@1.0.8%gcc
c3uhkcj 		    diffutils@3.8%gcc
ltvovvv 			libiconv@1.16%gcc
cpmynty 		gdbm@1.23%gcc
kgyvtw5 		    readline@8.1.2%gcc
k2lfw6f     pkgconf@1.8.0%gcc
2hfr5rb     zlib@1.2.13%gcc

ty2m35s hdf5@1.12.2%gcc
jrlhw77     cmake@3.24.3%gcc
zcuawli 	ncurses@6.3%gcc
uwlw4wr 	openssl@1.1.1s%gcc
aurd37j 	    ca-certificates-mozilla@2022-10-11%gcc
ilnrdw5     openmpi@4.1.4%gcc
5yywrk2 	hwloc@2.8.0%gcc
p7f5n6q 	    libpciaccess@0.16%gcc
ao5w53r 		util-macros@1.19.3%gcc
4aq5aj2 	    libxml2@2.10.1%gcc
ltvovvv 		libiconv@1.16%gcc
nrwxyth 		xz@5.2.7%gcc
l566d6c 	numactl@2.0.14%gcc
qdpipdf 	    autoconf@2.69%gcc
l7j5vdr 	    automake@1.16.5%gcc
bdxu4wn 	    libtool@2.4.7%gcc
z7d5q4f 	    m4@1.4.19%gcc
c3uhkcj 		diffutils@3.8%gcc
e262sf6 		libsigsegv@2.13%gcc
e4esedl 	openssh@9.1p1%gcc
oc246vi 	    krb5@1.19.3%gcc
kxbisdg 		bison@3.8.2%gcc
hj6szik 		gettext@0.21.1%gcc
kawegoy 		    tar@1.34%gcc
wod35ny 			pigz@2.7%gcc
fprmzmo 			zstd@1.5.2%gcc
6pzeykr 	    libedit@3.1-20210216%gcc
4ebutg2 	perl@5.36.0%gcc
53fb72w 	    berkeley-db@18.1.40%gcc
cxcreln 	    bzip2@1.0.8%gcc
cpmynty 	    gdbm@1.23%gcc
kgyvtw5 		readline@8.1.2%gcc
optdpo7 	pmix@4.1.2%gcc
ule2pil 	    libevent@2.1.12%gcc
k2lfw6f     pkgconf@1.8.0%gcc
2hfr5rb     zlib@1.2.13%gcc

7bnbpj2 hdf5@1.12.2%gcc
jrlhw77     cmake@3.24.3%gcc
zcuawli 	ncurses@6.3%gcc
uwlw4wr 	openssl@1.1.1s%gcc
aurd37j 	    ca-certificates-mozilla@2022-10-11%gcc
4ebutg2 	    perl@5.36.0%gcc
53fb72w 		berkeley-db@18.1.40%gcc
cxcreln 		bzip2@1.0.8%gcc
cpmynty 		gdbm@1.23%gcc
6bu5phw     mpich@4.0.2%gcc
fxoomyc 	findutils@4.9.0%gcc
5yywrk2 	hwloc@2.8.0%gcc
u2kjaxd 	libfabric@1.16.1%gcc
p7f5n6q 	libpciaccess@0.16%gcc
bdxu4wn 	    libtool@2.4.7%gcc
ao5w53r 	    util-macros@1.19.3%gcc
4aq5aj2 	libxml2@2.10.1%gcc
ltvovvv 	    libiconv@1.16%gcc
nrwxyth 	    xz@5.2.7%gcc
brpp4kt 	yaksa@0.2%gcc
qdpipdf 	    autoconf@2.69%gcc
l7j5vdr 	    automake@1.16.5%gcc
z7d5q4f 	    m4@1.4.19%gcc
c3uhkcj 		diffutils@3.8%gcc
e262sf6 		libsigsegv@2.13%gcc
wvhlgdd 	    python@3.10.8%gcc
j5k5nzg 		expat@2.4.8%gcc
qieib3t 		    libbsd@0.11.5%gcc
miq3rrs 			libmd@1.0.4%gcc
hj6szik 		gettext@0.21.1%gcc
kawegoy 		    tar@1.34%gcc
wod35ny 			pigz@2.7%gcc
fprmzmo 			zstd@1.5.2%gcc
qzq4b7h 		libffi@3.4.2%gcc
kgyvtw5 		readline@8.1.2%gcc
vmf7qax 		sqlite@3.39.4%gcc
eayyoxj 		util-linux-uuid@2.38.1%gcc
k2lfw6f     pkgconf@1.8.0%gcc
2hfr5rb     zlib@1.2.13%gcc

5yywrk2 hwloc@2.8.0%gcc
p7f5n6q     libpciaccess@0.16%gcc
bdxu4wn 	libtool@2.4.7%gcc
z7d5q4f 	    m4@1.4.19%gcc
c3uhkcj 		diffutils@3.8%gcc
e262sf6 		libsigsegv@2.13%gcc
ao5w53r 	util-macros@1.19.3%gcc
4aq5aj2     libxml2@2.10.1%gcc
ltvovvv 	libiconv@1.16%gcc
nrwxyth 	xz@5.2.7%gcc
2hfr5rb 	zlib@1.2.13%gcc
zcuawli     ncurses@6.3%gcc
k2lfw6f     pkgconf@1.8.0%gcc

oc246vi krb5@1.19.3%gcc
kxbisdg     bison@3.8.2%gcc
z7d5q4f 	m4@1.4.19%gcc
e262sf6 	    libsigsegv@2.13%gcc
4ebutg2 	perl@5.36.0%gcc
53fb72w 	    berkeley-db@18.1.40%gcc
cpmynty 	    gdbm@1.23%gcc
kgyvtw5 		readline@8.1.2%gcc
c3uhkcj     diffutils@3.8%gcc
ltvovvv 	libiconv@1.16%gcc
hj6szik     gettext@0.21.1%gcc
cxcreln 	bzip2@1.0.8%gcc
4aq5aj2 	libxml2@2.10.1%gcc
k2lfw6f 	    pkgconf@1.8.0%gcc
zcuawli 	ncurses@6.3%gcc
kawegoy 	tar@1.34%gcc
wod35ny 	    pigz@2.7%gcc
fprmzmo 	    zstd@1.5.2%gcc
nrwxyth 	xz@5.2.7%gcc
uwlw4wr     openssl@1.1.1s%gcc
aurd37j 	ca-certificates-mozilla@2022-10-11%gcc
2hfr5rb 	zlib@1.2.13%gcc

qieib3t libbsd@0.11.5%gcc
miq3rrs     libmd@1.0.4%gcc

6pzeykr libedit@3.1-20210216%gcc
zcuawli     ncurses@6.3%gcc
k2lfw6f     pkgconf@1.8.0%gcc

ule2pil libevent@2.1.12%gcc
uwlw4wr     openssl@1.1.1s%gcc
aurd37j 	ca-certificates-mozilla@2022-10-11%gcc
4ebutg2 	perl@5.36.0%gcc
53fb72w 	    berkeley-db@18.1.40%gcc
cxcreln 	    bzip2@1.0.8%gcc
c3uhkcj 		diffutils@3.8%gcc
ltvovvv 		    libiconv@1.16%gcc
cpmynty 	    gdbm@1.23%gcc
kgyvtw5 		readline@8.1.2%gcc
zcuawli 		    ncurses@6.3%gcc
k2lfw6f 			pkgconf@1.8.0%gcc
2hfr5rb 	zlib@1.2.13%gcc

u2kjaxd libfabric@1.16.1%gcc

qzq4b7h libffi@3.4.2%gcc

ltvovvv libiconv@1.16%gcc

miq3rrs libmd@1.0.4%gcc

p7f5n6q libpciaccess@0.16%gcc
bdxu4wn     libtool@2.4.7%gcc
z7d5q4f 	m4@1.4.19%gcc
c3uhkcj 	    diffutils@3.8%gcc
ltvovvv 		libiconv@1.16%gcc
e262sf6 	    libsigsegv@2.13%gcc
k2lfw6f     pkgconf@1.8.0%gcc
ao5w53r     util-macros@1.19.3%gcc

e262sf6 libsigsegv@2.13%gcc

bdxu4wn libtool@2.4.7%gcc
z7d5q4f     m4@1.4.19%gcc
c3uhkcj 	diffutils@3.8%gcc
ltvovvv 	    libiconv@1.16%gcc
e262sf6 	libsigsegv@2.13%gcc

4aq5aj2 libxml2@2.10.1%gcc
ltvovvv     libiconv@1.16%gcc
k2lfw6f     pkgconf@1.8.0%gcc
nrwxyth     xz@5.2.7%gcc
2hfr5rb     zlib@1.2.13%gcc

z7d5q4f m4@1.4.19%gcc
c3uhkcj     diffutils@3.8%gcc
ltvovvv 	libiconv@1.16%gcc
e262sf6     libsigsegv@2.13%gcc

6bu5phw mpich@4.0.2%gcc
fxoomyc     findutils@4.9.0%gcc
5yywrk2     hwloc@2.8.0%gcc
zcuawli 	ncurses@6.3%gcc
u2kjaxd     libfabric@1.16.1%gcc
p7f5n6q     libpciaccess@0.16%gcc
bdxu4wn 	libtool@2.4.7%gcc
ao5w53r 	util-macros@1.19.3%gcc
4aq5aj2     libxml2@2.10.1%gcc
ltvovvv 	libiconv@1.16%gcc
nrwxyth 	xz@5.2.7%gcc
2hfr5rb 	zlib@1.2.13%gcc
k2lfw6f     pkgconf@1.8.0%gcc
brpp4kt     yaksa@0.2%gcc
qdpipdf 	autoconf@2.69%gcc
4ebutg2 	    perl@5.36.0%gcc
53fb72w 		berkeley-db@18.1.40%gcc
l7j5vdr 	automake@1.16.5%gcc
z7d5q4f 	m4@1.4.19%gcc
c3uhkcj 	    diffutils@3.8%gcc
e262sf6 	    libsigsegv@2.13%gcc
wvhlgdd 	python@3.10.8%gcc
cxcreln 	    bzip2@1.0.8%gcc
j5k5nzg 	    expat@2.4.8%gcc
qieib3t 		libbsd@0.11.5%gcc
miq3rrs 		    libmd@1.0.4%gcc
cpmynty 	    gdbm@1.23%gcc
hj6szik 	    gettext@0.21.1%gcc
kawegoy 		tar@1.34%gcc
wod35ny 		    pigz@2.7%gcc
fprmzmo 		    zstd@1.5.2%gcc
qzq4b7h 	    libffi@3.4.2%gcc
uwlw4wr 	    openssl@1.1.1s%gcc
aurd37j 		ca-certificates-mozilla@2022-10-11%gcc
kgyvtw5 	    readline@8.1.2%gcc
vmf7qax 	    sqlite@3.39.4%gcc
eayyoxj 	    util-linux-uuid@2.38.1%gcc

zcuawli ncurses@6.3%gcc
k2lfw6f     pkgconf@1.8.0%gcc

l566d6c numactl@2.0.14%gcc
qdpipdf     autoconf@2.69%gcc
4ebutg2 	perl@5.36.0%gcc
53fb72w 	    berkeley-db@18.1.40%gcc
cxcreln 	    bzip2@1.0.8%gcc
cpmynty 	    gdbm@1.23%gcc
kgyvtw5 		readline@8.1.2%gcc
zcuawli 		    ncurses@6.3%gcc
k2lfw6f 			pkgconf@1.8.0%gcc
2hfr5rb 	    zlib@1.2.13%gcc
l7j5vdr     automake@1.16.5%gcc
bdxu4wn     libtool@2.4.7%gcc
z7d5q4f     m4@1.4.19%gcc
c3uhkcj 	diffutils@3.8%gcc
ltvovvv 	    libiconv@1.16%gcc
e262sf6 	libsigsegv@2.13%gcc

ilnrdw5 openmpi@4.1.4%gcc
5yywrk2     hwloc@2.8.0%gcc
p7f5n6q 	libpciaccess@0.16%gcc
ao5w53r 	    util-macros@1.19.3%gcc
4aq5aj2 	libxml2@2.10.1%gcc
ltvovvv 	    libiconv@1.16%gcc
nrwxyth 	    xz@5.2.7%gcc
zcuawli 	ncurses@6.3%gcc
l566d6c     numactl@2.0.14%gcc
qdpipdf 	autoconf@2.69%gcc
l7j5vdr 	automake@1.16.5%gcc
bdxu4wn 	libtool@2.4.7%gcc
z7d5q4f 	m4@1.4.19%gcc
c3uhkcj 	    diffutils@3.8%gcc
e262sf6 	    libsigsegv@2.13%gcc
e4esedl     openssh@9.1p1%gcc
oc246vi 	krb5@1.19.3%gcc
kxbisdg 	    bison@3.8.2%gcc
hj6szik 	    gettext@0.21.1%gcc
kawegoy 		tar@1.34%gcc
wod35ny 		    pigz@2.7%gcc
fprmzmo 		    zstd@1.5.2%gcc
6pzeykr 	libedit@3.1-20210216%gcc
uwlw4wr 	openssl@1.1.1s%gcc
aurd37j 	    ca-certificates-mozilla@2022-10-11%gcc
4ebutg2     perl@5.36.0%gcc
53fb72w 	berkeley-db@18.1.40%gcc
cxcreln 	bzip2@1.0.8%gcc
cpmynty 	gdbm@1.23%gcc
kgyvtw5 	    readline@8.1.2%gcc
k2lfw6f     pkgconf@1.8.0%gcc
optdpo7     pmix@4.1.2%gcc
ule2pil 	libevent@2.1.12%gcc
2hfr5rb     zlib@1.2.13%gcc

e4esedl openssh@9.1p1%gcc
oc246vi     krb5@1.19.3%gcc
kxbisdg 	bison@3.8.2%gcc
z7d5q4f 	    m4@1.4.19%gcc
e262sf6 		libsigsegv@2.13%gcc
c3uhkcj 	diffutils@3.8%gcc
ltvovvv 	    libiconv@1.16%gcc
hj6szik 	gettext@0.21.1%gcc
cxcreln 	    bzip2@1.0.8%gcc
4aq5aj2 	    libxml2@2.10.1%gcc
kawegoy 	    tar@1.34%gcc
wod35ny 		pigz@2.7%gcc
fprmzmo 		zstd@1.5.2%gcc
nrwxyth 	    xz@5.2.7%gcc
6pzeykr     libedit@3.1-20210216%gcc
k2lfw6f 	pkgconf@1.8.0%gcc
zcuawli     ncurses@6.3%gcc
uwlw4wr     openssl@1.1.1s%gcc
aurd37j 	ca-certificates-mozilla@2022-10-11%gcc
4ebutg2 	perl@5.36.0%gcc
53fb72w 	    berkeley-db@18.1.40%gcc
cpmynty 	    gdbm@1.23%gcc
kgyvtw5 		readline@8.1.2%gcc
2hfr5rb     zlib@1.2.13%gcc

uwlw4wr openssl@1.1.1s%gcc
aurd37j     ca-certificates-mozilla@2022-10-11%gcc
4ebutg2     perl@5.36.0%gcc
53fb72w 	berkeley-db@18.1.40%gcc
cxcreln 	bzip2@1.0.8%gcc
c3uhkcj 	    diffutils@3.8%gcc
ltvovvv 		libiconv@1.16%gcc
cpmynty 	gdbm@1.23%gcc
kgyvtw5 	    readline@8.1.2%gcc
zcuawli 		ncurses@6.3%gcc
k2lfw6f 		    pkgconf@1.8.0%gcc
2hfr5rb     zlib@1.2.13%gcc

4ebutg2 perl@5.36.0%gcc
53fb72w     berkeley-db@18.1.40%gcc
cxcreln     bzip2@1.0.8%gcc
c3uhkcj 	diffutils@3.8%gcc
ltvovvv 	    libiconv@1.16%gcc
cpmynty     gdbm@1.23%gcc
kgyvtw5 	readline@8.1.2%gcc
zcuawli 	    ncurses@6.3%gcc
k2lfw6f 		pkgconf@1.8.0%gcc
2hfr5rb     zlib@1.2.13%gcc

wod35ny pigz@2.7%gcc
2hfr5rb     zlib@1.2.13%gcc

k2lfw6f pkgconf@1.8.0%gcc

optdpo7 pmix@4.1.2%gcc
5yywrk2     hwloc@2.8.0%gcc
p7f5n6q 	libpciaccess@0.16%gcc
bdxu4wn 	    libtool@2.4.7%gcc
z7d5q4f 		m4@1.4.19%gcc
c3uhkcj 		    diffutils@3.8%gcc
e262sf6 		    libsigsegv@2.13%gcc
ao5w53r 	    util-macros@1.19.3%gcc
4aq5aj2 	libxml2@2.10.1%gcc
ltvovvv 	    libiconv@1.16%gcc
nrwxyth 	    xz@5.2.7%gcc
2hfr5rb 	    zlib@1.2.13%gcc
zcuawli 	ncurses@6.3%gcc
k2lfw6f 	pkgconf@1.8.0%gcc
ule2pil     libevent@2.1.12%gcc
uwlw4wr 	openssl@1.1.1s%gcc
aurd37j 	    ca-certificates-mozilla@2022-10-11%gcc
4ebutg2 	    perl@5.36.0%gcc
53fb72w 		berkeley-db@18.1.40%gcc
cxcreln 		bzip2@1.0.8%gcc
cpmynty 		gdbm@1.23%gcc
kgyvtw5 		    readline@8.1.2%gcc

wvhlgdd python@3.10.8%gcc
cxcreln     bzip2@1.0.8%gcc
c3uhkcj 	diffutils@3.8%gcc
j5k5nzg     expat@2.4.8%gcc
qieib3t 	libbsd@0.11.5%gcc
miq3rrs 	    libmd@1.0.4%gcc
cpmynty     gdbm@1.23%gcc
hj6szik     gettext@0.21.1%gcc
ltvovvv 	libiconv@1.16%gcc
4aq5aj2 	libxml2@2.10.1%gcc
kawegoy 	tar@1.34%gcc
wod35ny 	    pigz@2.7%gcc
fprmzmo 	    zstd@1.5.2%gcc
qzq4b7h     libffi@3.4.2%gcc
zcuawli     ncurses@6.3%gcc
uwlw4wr     openssl@1.1.1s%gcc
aurd37j 	ca-certificates-mozilla@2022-10-11%gcc
4ebutg2 	perl@5.36.0%gcc
53fb72w 	    berkeley-db@18.1.40%gcc
k2lfw6f     pkgconf@1.8.0%gcc
kgyvtw5     readline@8.1.2%gcc
vmf7qax     sqlite@3.39.4%gcc
eayyoxj     util-linux-uuid@2.38.1%gcc
nrwxyth     xz@5.2.7%gcc
2hfr5rb     zlib@1.2.13%gcc

kgyvtw5 readline@8.1.2%gcc
zcuawli     ncurses@6.3%gcc
k2lfw6f 	pkgconf@1.8.0%gcc

vmf7qax sqlite@3.39.4%gcc
kgyvtw5     readline@8.1.2%gcc
zcuawli 	ncurses@6.3%gcc
k2lfw6f 	    pkgconf@1.8.0%gcc
2hfr5rb     zlib@1.2.13%gcc

kawegoy tar@1.34%gcc
cxcreln     bzip2@1.0.8%gcc
c3uhkcj 	diffutils@3.8%gcc
ltvovvv     libiconv@1.16%gcc
wod35ny     pigz@2.7%gcc
2hfr5rb 	zlib@1.2.13%gcc
nrwxyth     xz@5.2.7%gcc
fprmzmo     zstd@1.5.2%gcc

rakrbas tcl@8.6.12%gcc
zqdhyiy     zlib@1.2.8%gcc  cppflags="-O3"

v63n6wx tcl@8.6.12%gcc
2hfr5rb     zlib@1.2.13%gcc

eayyoxj util-linux-uuid@2.38.1%gcc
k2lfw6f     pkgconf@1.8.0%gcc

ao5w53r util-macros@1.19.3%gcc

nrwxyth xz@5.2.7%gcc

brpp4kt yaksa@0.2%gcc
qdpipdf     autoconf@2.69%gcc
4ebutg2 	perl@5.36.0%gcc
53fb72w 	    berkeley-db@18.1.40%gcc
l7j5vdr     automake@1.16.5%gcc
bdxu4wn     libtool@2.4.7%gcc
z7d5q4f     m4@1.4.19%gcc
c3uhkcj 	diffutils@3.8%gcc
ltvovvv 	    libiconv@1.16%gcc
e262sf6 	libsigsegv@2.13%gcc
wvhlgdd     python@3.10.8%gcc
cxcreln 	bzip2@1.0.8%gcc
j5k5nzg 	expat@2.4.8%gcc
qieib3t 	    libbsd@0.11.5%gcc
miq3rrs 		libmd@1.0.4%gcc
cpmynty 	gdbm@1.23%gcc
hj6szik 	gettext@0.21.1%gcc
4aq5aj2 	    libxml2@2.10.1%gcc
kawegoy 	    tar@1.34%gcc
wod35ny 		pigz@2.7%gcc
fprmzmo 		zstd@1.5.2%gcc
qzq4b7h 	libffi@3.4.2%gcc
zcuawli 	ncurses@6.3%gcc
uwlw4wr 	openssl@1.1.1s%gcc
aurd37j 	    ca-certificates-mozilla@2022-10-11%gcc
k2lfw6f 	pkgconf@1.8.0%gcc
kgyvtw5 	readline@8.1.2%gcc
vmf7qax 	sqlite@3.39.4%gcc
eayyoxj 	util-linux-uuid@2.38.1%gcc
nrwxyth 	xz@5.2.7%gcc
2hfr5rb 	zlib@1.2.13%gcc

zqdhyiy zlib@1.2.8%gcc	cppflags="-O3"

2hfr5rb zlib@1.2.13%gcc

fprmzmo zstd@1.5.2%gcc

==> 56 installed packages

Spack models the dependencies of packages as a directed acyclic graph (DAG). The spack find -d command shows the tree representation of that graph. We can also use the spack graph command to view the entire DAG as a graph.

$ spack graph hdf5+hl+mpi ^mpich
o hdf5@1.12.2/7bnbpj2
|\
| |\
| | |\
| | o | mpich@4.0.2/6bu5phw
| |/| |
| | |\ \
| | | |\ \
| | | | |\ \
| | | | | |\ \
| | | | | | |\ \
| | o | | | | | | yaksa@0.2/brpp4kt
| | |\ \ \ \ \ \ \
| | | |\ \ \ \ \ \ \
| | | | |\ \ \ \ \ \ \
| | | | | |\ \ \ \ \ \ \
| | o | | | | | | | | | | python@3.10.8/wvhlgdd
| |/| | | | | | | | | | |
|/|/| | | | | | | | | | |
| | |\ \ \ \ \ \ \ \ \ \ \
| | | |\ \ \ \ \ \ \ \ \ \ \
| | | | |\ \ \ \ \ \ \ \ \ \ \
| | | | | |\ \ \ \ \ \ \ \ \ \ \
| | | | | | |\ \ \ \ \ \ \ \ \ \ \
| | | | | | | |\ \ \ \ \ \ \ \ \ \ \
| | | | | | | | |\ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | |\ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | |\ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | |\ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | o | | | | | | | | | | | | | gettext@0.21.1/hj6szik
| | | |_|_|_|_|_|/| | | | | | | | | | | | | |
| | |/| | | | | |/| | | | | | | | | | | | | |
| | | | | | | |/| | | | | | | | | | | | | | |
| | | | | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | |_|_|_|_|_|_|_|/ / / / / /
| | | | | | | | | | |/| | | | | | | | | | | | |
| | | | | | | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | | | |_|/ / / / / / / / / /
| | | | | | | | | | | | |/| | | | | | | | | | |
| | | | | | | | | o | | | | | | | | | | | | | | tar@1.34/kawegoy
| | | |_|_|_|_|_|/| | | | | | | | | | | | | | |
| | |/| | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | | |_|/ / / / / / / / / / / / /
| | | | | | | | | | | |/| | | | | | | | | | | | | |
| | | | | | | | | | | | |/ / / / / / / / / / / / /
| | | | | | | | | o | | | | | | | | | | | | | | | zstd@1.5.2/fprmzmo
| | | | | | | | |  / / / / / / / / / / / / / / /
| | | | o | | | | | | | | | | | | | | | | | | | sqlite@3.39.4/vmf7qax
| |_|_|/| | | | | | | | | | | | | | | | | | | |
|/| | | | | | | | | | | | | | | | | | | | | | |
| | | | |/ / / / / / / / / / / / / / / / / / /
| | | | | | | | o | | | | | | | | | | | | | | pigz@2.7/wod35ny
| |_|_|_|_|_|_|/ / / / / / / / / / / / / / /
|/| | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | o cmake@3.24.3/jrlhw77
| | | | | | |_|_|_|_|_|_|_|_|_|_|_|_|_|_|/|
| | | | | |/| |_|_|_|_|_|_|_|_|_|_|_|_|_|/
| | | | | | |/| | | | | | | | | | | | | |
| | | | | o | | | | | | | | | | | | | | | openssl@1.1.1s/uwlw4wr
| |_|_|_|/| | | | | | | | | | | | | | | |
|/| | | | | | | | | | | | | | | | | | | |
| | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | | | | | | o | | | | | automake@1.16.5/l7j5vdr
| | | | | | |_|_|_|_|_|_|_|_|_|/| | | | | |
| | | | | |/| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |/ / / / /
| | | | | | | | | | | | | | | | o | | | | autoconf@2.69/qdpipdf
| | | | | | |_|_|_|_|_|_|_|_|_|/| | | | |
| | | | | |/| | | | | | | | | |/ / / / /
| | | | | | | | | | | | | | |/| | | | |
| | | | | o | | | | | | | | | | | | | | perl@5.36.0/4ebutg2
| |_|_|_|/| | | | | | | | | | | | | | |
|/| | | | | | | | | | | | | | | | | | |
| | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | |_|_|_|_|_|_|/ / / / / / / /
| | | | | |/| | | | | | | | | | | | | |
| | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | |_|_|_|_|/ / / / / / / / /
| | | | | | |/| | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | o | hwloc@2.8.0/5yywrk2
| | |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|/| |
| |/| | | | | | | | |_|_|_|_|_|_|_|/| |
| | | | | | | | | |/| | | |_|_|_|_|/| |
| | | | | | | | | | | | |/| | | | |/ /
| | | | | | | | | | | | | | | | |/| |
| | | | | | | | | | | | o | | | | | | libxml2@2.10.1/4aq5aj2
| |_|_|_|_|_|_|_|_|_|_|/| | | | | | |
|/| |_|_|_|_|_|_|_|_|_|/| | | | | | |
| |/| |_|_|_|_|_|_|_|_|/| | | | | | |
| | |/| | | | | | | | |/ / / / / / /
o | | | | | | | | | | | | | | | | | zlib@1.2.13/2hfr5rb
 / / / / / / / / / / / / / / / / /
| o | | | | | | | | | | | | | | | xz@5.2.7/nrwxyth
|  / / / / / / / / / / / / / / /
| | | | | | | | | | | | | o | | libpciaccess@0.16/p7f5n6q
| |_|_|_|_|_|_|_|_|_|_|_|/| | |
|/| | | | | | | | | | | |/| | |
| | | | | | | | | | | | | o | | util-macros@1.19.3/ao5w53r
| | | | | | | | | | | | |  / /
| o | | | | | | | | | | | | | util-linux-uuid@2.38.1/eayyoxj
|/ / / / / / / / / / / / / /
| | o | | | | | | | | | | | gdbm@1.23/cpmynty
| |/ / / / / / / / / / / /
| o | | | | | | | | | | | readline@8.1.2/kgyvtw5
| | |_|_|/ / / / / / / /
| |/| | | | | | | | | |
| o | | | | | | | | | | ncurses@6.3/zcuawli
|/ / / / / / / / / / /
o | | | | | | | | | | pkgconf@1.8.0/k2lfw6f
 / / / / / / / / / /
| | | | | | | o | | libtool@2.4.7/bdxu4wn
| | | | | | |/ / /
| | | | | | o | | m4@1.4.19/z7d5q4f
| | | | | | |\ \ \
| | | | | | o | | | libsigsegv@2.13/e262sf6
| | | | | |  / / /
| | | | | o | | | expat@2.4.8/j5k5nzg
| | | | | o | | | libbsd@0.11.5/qieib3t
| | | | | o | | | libmd@1.0.4/miq3rrs
| | | | |  / / /
o | | | | | | | bzip2@1.0.8/cxcreln
| |_|_|_|/ / /
|/| | | | | |
o | | | | | | diffutils@3.8/c3uhkcj
| |_|_|/ / /
|/| | | | |
o | | | | | libiconv@1.16/ltvovvv
 / / / / /
| | o | | libffi@3.4.2/qzq4b7h
| |  / /
| | o | libfabric@1.16.1/u2kjaxd
| |  /
| | o findutils@4.9.0/fxoomyc
| |
| o ca-certificates-mozilla@2022-10-11/aurd37j
|
o berkeley-db@18.1.40/53fb72w

You may also have noticed that there are some packages shown in the spack find -d output that we didn’t install explicitly. These are dependencies that were installed implicitly. A few packages installed implicitly are not shown as dependencies in the spack find -d output. These are build dependencies. For example, hdf5 requires cmake to build. Spack will build cmake as part of the installation of hdf5, but it does not become a part of the DAG because it is not linked in at run time. Spack handles build dependencies differently because of their different (less strict) consistency requirements. It is entirely possible to have two packages using different versions of a dependency to build, which obviously cannot be done with linked dependencies.

HDF5 is more complicated than our basic example of zlib and Tcl, but it’s still within the realm of software that an experienced HPC user could reasonably expect to manually install given a bit of time. Now let’s look at an even more complicated package.

$ spack install trilinos
==> Waiting for pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
==> Waiting for ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
==> Waiting for berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
==> Waiting for libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
==> Waiting for zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> Waiting for libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
==> Waiting for util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
==> Waiting for xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
==> Waiting for zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
==> Waiting for ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
==> Waiting for diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
==> Waiting for pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
==> Waiting for libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
==> Waiting for libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
==> Waiting for readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
==> Waiting for m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
==> Waiting for bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
==> Waiting for gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
==> Waiting for libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
==> Waiting for tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
==> Waiting for perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
==> Waiting for libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
==> Waiting for gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
==> Waiting for autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
==> Waiting for bison-3.8.2-kxbisdgbfdep575ib3o6kxngzgkhdkzg
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bison-3.8.2-kxbisdgbfdep575ib3o6kxngzgkhdkzg
==> Waiting for openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
==> Waiting for openblas-0.3.21-4svpf4lqnwslt2pdohhgbfamsqnjrtez
==> Installing openblas-0.3.21-4svpf4lqnwslt2pdohhgbfamsqnjrtez
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-openblas-0.3.21-4svpf4lqnwslt2pdohhgbfamsqnjrtez.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/openblas-0.3.21/linux-ubuntu18.04-x86_64-gcc-7.5.0-openblas-0.3.21-4svpf4lqnwslt2pdohhgbfamsqnjrtez.spack
==> Extracting openblas-0.3.21-4svpf4lqnwslt2pdohhgbfamsqnjrtez from binary cache
==> openblas: Successfully installed openblas-0.3.21-4svpf4lqnwslt2pdohhgbfamsqnjrtez
  Fetch: 5.46s.  Build: 1.01s.	Total: 6.47s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openblas-0.3.21-4svpf4lqnwslt2pdohhgbfamsqnjrtez
==> Waiting for hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
==> Waiting for automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
==> Waiting for libevent-2.1.12-ule2pilocxwpbqtu746syxq6p5wuhndf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libevent-2.1.12-ule2pilocxwpbqtu746syxq6p5wuhndf
==> Waiting for krb5-1.19.3-oc246vidm3aae72zpuxzubvpsgvtsbxg
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/krb5-1.19.3-oc246vidm3aae72zpuxzubvpsgvtsbxg
==> Waiting for cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
==> Waiting for numactl-2.0.14-l566d6cppqee7xyrx6yit5g2xywbvoyo
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/numactl-2.0.14-l566d6cppqee7xyrx6yit5g2xywbvoyo
==> Waiting for pmix-4.1.2-optdpo7xdafhkbn7wg34nrxos6ypvabi
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pmix-4.1.2-optdpo7xdafhkbn7wg34nrxos6ypvabi
==> Waiting for openssh-9.1p1-e4esedlbiusyosdimlwp6lc2wqvdxji7
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssh-9.1p1-e4esedlbiusyosdimlwp6lc2wqvdxji7
==> Waiting for openmpi-4.1.4-ilnrdw5772nw64ac6bkassqbmi7h2hgq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-ilnrdw5772nw64ac6bkassqbmi7h2hgq
==> Waiting for trilinos-13.0.1-lrg5jy2ufbudxfnw3hyn7yn56abmhddl
==> Installing trilinos-13.0.1-lrg5jy2ufbudxfnw3hyn7yn56abmhddl
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-trilinos-13.0.1-lrg5jy2ufbudxfnw3hyn7yn56abmhddl.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/trilinos-13.0.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-trilinos-13.0.1-lrg5jy2ufbudxfnw3hyn7yn56abmhddl.spack
==> Extracting trilinos-13.0.1-lrg5jy2ufbudxfnw3hyn7yn56abmhddl from binary cache
==> trilinos: Successfully installed trilinos-13.0.1-lrg5jy2ufbudxfnw3hyn7yn56abmhddl
  Fetch: 53.17s.  Build: 8.09s.  Total: 1m 1.26s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/trilinos-13.0.1-lrg5jy2ufbudxfnw3hyn7yn56abmhddl

Now we’re starting to see the power of Spack. Trilinos in its default configuration has 23 top level dependencies, many of which have dependencies of their own. Installing more complex packages can take days or weeks even for an experienced user. Although we’ve done a binary installation for the tutorial, a source installation of Trilinos using Spack takes about 3 hours (depending on the system), but only 20 seconds of programmer time.

Spack manages consistency of the entire DAG. Every MPI dependency will be satisfied by the same configuration of MPI, etc. If we install Trilinos again specifying a dependency on our previous HDF5 built with MPICH:

$ spack install trilinos +hdf5 ^hdf5+hl+mpi ^mpich
==> Waiting for pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
==> Waiting for ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
==> Waiting for berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
==> Waiting for libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
==> Waiting for zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> Waiting for findutils-4.9.0-fxoomycyzatn7nzlioglzjir3lgs5kuk
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/findutils-4.9.0-fxoomycyzatn7nzlioglzjir3lgs5kuk
==> Waiting for libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
==> Waiting for util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
==> Waiting for xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
==> Waiting for libfabric-1.16.1-u2kjaxdisx652qhefe2ibofiewkdgstr
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libfabric-1.16.1-u2kjaxdisx652qhefe2ibofiewkdgstr
==> Waiting for libmd-1.0.4-miq3rrs534mewt3w5r3wd5jp3lkk7y25
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libmd-1.0.4-miq3rrs534mewt3w5r3wd5jp3lkk7y25
==> Waiting for zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
==> Waiting for libffi-3.4.2-qzq4b7hjmtrswtnnezcytreqg4vtsgi5
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libffi-3.4.2-qzq4b7hjmtrswtnnezcytreqg4vtsgi5
==> Waiting for ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
==> Waiting for util-linux-uuid-2.38.1-eayyoxjdfrc2wivabs5jbipcofeluyyo
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-linux-uuid-2.38.1-eayyoxjdfrc2wivabs5jbipcofeluyyo
==> Waiting for diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
==> Waiting for pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
==> Waiting for libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
==> Waiting for libbsd-0.11.5-qieib3tiyp74ps4kn3jail7bot35t7hp
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libbsd-0.11.5-qieib3tiyp74ps4kn3jail7bot35t7hp
==> Waiting for readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
==> Waiting for bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
==> Waiting for m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
==> Waiting for expat-2.4.8-j5k5nzgsbhue6ylglt4gtrnm6okuvsj6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/expat-2.4.8-j5k5nzgsbhue6ylglt4gtrnm6okuvsj6
==> Waiting for sqlite-3.39.4-vmf7qax3kowjkec5bzohcqvo5rqgm3xx
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/sqlite-3.39.4-vmf7qax3kowjkec5bzohcqvo5rqgm3xx
==> Waiting for gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
==> Waiting for tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
==> Waiting for libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
==> Waiting for perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
==> Waiting for gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
==> Waiting for libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
==> Waiting for autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
==> Waiting for openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssl-1.1.1s-uwlw4wregxiygolo4njivdqnmntkdrfm
==> Waiting for openblas-0.3.21-4svpf4lqnwslt2pdohhgbfamsqnjrtez
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openblas-0.3.21-4svpf4lqnwslt2pdohhgbfamsqnjrtez
==> Waiting for hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
==> Waiting for automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
==> Waiting for cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/cmake-3.24.3-jrlhw77jbz2jsfe52rjcjhvkyjqgaqva
==> Waiting for python-3.10.8-wvhlgddicoh3nqgeusdnal356lk55ckf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/python-3.10.8-wvhlgddicoh3nqgeusdnal356lk55ckf
==> Waiting for yaksa-0.2-brpp4ktzdureirvmryq3csivcvglrkdx
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/yaksa-0.2-brpp4ktzdureirvmryq3csivcvglrkdx
==> Waiting for mpich-4.0.2-6bu5phw7dhguzbqpmjifnowses5rptmz
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/mpich-4.0.2-6bu5phw7dhguzbqpmjifnowses5rptmz
==> Waiting for hdf5-1.12.2-7bnbpj2kq46c7dmdo7j6m63c5pxyaib5
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hdf5-1.12.2-7bnbpj2kq46c7dmdo7j6m63c5pxyaib5
==> Waiting for trilinos-13.0.1-yvcu2p2q7yeq25jfdsy3huqfozzihqk2
==> Installing trilinos-13.0.1-yvcu2p2q7yeq25jfdsy3huqfozzihqk2
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-trilinos-13.0.1-yvcu2p2q7yeq25jfdsy3huqfozzihqk2.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/trilinos-13.0.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-trilinos-13.0.1-yvcu2p2q7yeq25jfdsy3huqfozzihqk2.spack
==> Extracting trilinos-13.0.1-yvcu2p2q7yeq25jfdsy3huqfozzihqk2 from binary cache
==> trilinos: Successfully installed trilinos-13.0.1-yvcu2p2q7yeq25jfdsy3huqfozzihqk2
  Fetch: 51.17s.  Build: 7.98s.  Total: 59.15s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/trilinos-13.0.1-yvcu2p2q7yeq25jfdsy3huqfozzihqk2

We see that every package in the Trilinos DAG that depends on MPI now uses MPICH.

$ spack find -d trilinos
-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
trilinos@13.0.1
    cmake@3.24.3
	ncurses@6.3
	openssl@1.1.1s
	    ca-certificates-mozilla@2022-10-11
    hwloc@2.8.0
	libpciaccess@0.16
	    libtool@2.4.7
	    util-macros@1.19.3
	libxml2@2.10.1
	    libiconv@1.16
	    xz@5.2.7
	pkgconf@1.8.0
    openblas@0.3.21
	perl@5.36.0
	    berkeley-db@18.1.40
	    bzip2@1.0.8
		diffutils@3.8
	    gdbm@1.23
		readline@8.1.2
    openmpi@4.1.4
	numactl@2.0.14
	    autoconf@2.69
	    automake@1.16.5
	    m4@1.4.19
		libsigsegv@2.13
	openssh@9.1p1
	    krb5@1.19.3
		bison@3.8.2
		gettext@0.21.1
		    tar@1.34
			pigz@2.7
			zstd@1.5.2
	    libedit@3.1-20210216
	pmix@4.1.2
	    libevent@2.1.12
	zlib@1.2.13

trilinos@13.0.1
    cmake@3.24.3
	ncurses@6.3
	openssl@1.1.1s
	    ca-certificates-mozilla@2022-10-11
    hdf5@1.12.2
	pkgconf@1.8.0
	zlib@1.2.13
    hwloc@2.8.0
	libpciaccess@0.16
	    libtool@2.4.7
	    util-macros@1.19.3
	libxml2@2.10.1
	    libiconv@1.16
	    xz@5.2.7
    mpich@4.0.2
	findutils@4.9.0
	libfabric@1.16.1
	yaksa@0.2
	    autoconf@2.69
	    automake@1.16.5
	    m4@1.4.19
		diffutils@3.8
		libsigsegv@2.13
	    python@3.10.8
		expat@2.4.8
		    libbsd@0.11.5
			libmd@1.0.4
		gettext@0.21.1
		    tar@1.34
			pigz@2.7
			zstd@1.5.2
		libffi@3.4.2
		readline@8.1.2
		sqlite@3.39.4
		util-linux-uuid@2.38.1
    openblas@0.3.21
	perl@5.36.0
	    berkeley-db@18.1.40
	    bzip2@1.0.8
	    gdbm@1.23

==> 2 installed packages

As we discussed before, the spack find -d command shows the dependency information as a tree. While that is often sufficient, many complicated packages, including Trilinos, have dependencies that cannot be fully represented as a tree. Again, the spack graph command shows the full DAG of the dependency information.

$ spack graph trilinos
o trilinos@13.0.1/lrg5jy2
|\
| |\
| | |\
o | | | openmpi@4.1.4/ilnrdw5
|\ \ \ \
| |\ \ \ \
| | |\ \ \ \
| | | |\ \ \ \
| | | | |\ \ \ \
| | | | | |\ \ \ \
| | | | | | | |/ /
| | | | | | |/| |
| | | | o | | | | openssh@9.1p1/e4esedl
| |_|_|/| | | | |
|/| | | | | | | |
| | | | |\ \ \ \ \
| | | | | |\ \ \ \ \
| | | | | | |\ \ \ \ \
| | | | | | | o | | | | krb5@1.19.3/oc246vi
| | | | | |_|/| | | | |
| | | | |/| | | | | | |
| | | | | | | |\ \ \ \ \
| | | | | | | | |\ \ \ \ \
| | | | | | | o | | | | | | gettext@0.21.1/hj6szik
| | | | | | |/| | | | | | |
| | | | | |/| | | | | | | |
| | | | | | | |\ \ \ \ \ \ \
| | | | | | | | |\ \ \ \ \ \ \
| | | | | | | | | |\ \ \ \ \ \ \
| | | | | | | | | | |\ \ \ \ \ \ \
| | | | | | | | o | | | | | | | | | tar@1.34/kawegoy
| | | | | | | |/| | | | | | | | | |
| | | | | | | | |\ \ \ \ \ \ \ \ \ \
| | | | | | | | | |\ \ \ \ \ \ \ \ \ \
| | | | | | | | | | |\ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | |_|/ / / / / / / /
| | | | | | | | | | |/| | | | | | | | |
| | | | | | | | | | | |/ / / / / / / /
| | | | | | | | o | | | | | | | | | | zstd@1.5.2/fprmzmo
| | | | | | | |  / / / / / / / / / /
| o | | | | | | | | | | | | | | | | pmix@4.1.2/optdpo7
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | |_|_|_|_|_|_|_|_|_|_|_|_|/ / /
| | |/| | | | | | | | | | | | | | |
| | | | | | | | | o | | | | | | | | pigz@2.7/wod35ny
| |_|_|_|_|_|_|_|/ / / / / / / / /
|/| | | | | | | | | | | | | | | |
| o | | | | | | | | | | | | | | | libevent@2.1.12/ule2pil
| | |_|_|/ / / / / / / / / / / /
| |/| | | | | | | | | | | | | |
| | | | | | | | | | | | | | | o cmake@3.24.3/jrlhw77
| | |_|_|_|_|_|_|_|_|_|_|_|_|/|
| |/| | | | |_|_|_|_|_|_|_|_|/
| | | | | |/| | | | | | | | |
| o | | | | | | | | | | | | | openssl@1.1.1s/uwlw4wr
|/| | | | | | | | | | | | | |
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \
| | |_|_|/ / / / / / / / / / /
| |/| | | | | | | | | | | | |
| | | | | | | | | | | | | | o openblas@0.3.21/4svpf4l
| | |_|_|_|_|_|_|_|_|_|_|_|/
| |/| | | | | | | | | | | |
| | | | | | | | | | | | | o numactl@2.0.14/l566d6c
| | | | | | | | | | | | | |\
| | | | | | | | | | | | | | |\
| | | | | | | | | | | | | | | |\
| | | | | | | | | | | | o | | | | bison@3.8.2/kxbisdg
| | |_|_|_|_|_|_|_|_|_|/| | | | |
| |/| | | | | | | | | |/| | | | |
| | | | | | | | | | | | |/ / / /
| | | | | | | | | | | | | | o | automake@1.16.5/l7j5vdr
| | |_|_|_|_|_|_|_|_|_|_|_|/| |
| |/| | | | | | | | | | | | | |
| | | | | | | | | | | | | | |/
| | | | | | | | | | | | | | o autoconf@2.69/qdpipdf
| | |_|_|_|_|_|_|_|_|_|_|_|/|
| |/| | | | | | | | | | | |/
| | | | | | | | | | | | |/|
| o | | | | | | | | | | | | perl@5.36.0/4ebutg2
|/| | | | | | | | | | | | |
| |\ \ \ \ \ \ \ \ \ \ \ \ \
| | |\ \ \ \ \ \ \ \ \ \ \ \ \
| | | |_|_|_|_|_|_|_|/ / / / /
| | |/| | | | | | | | | | | |
| | | | | o | | | | | | | | | hwloc@2.8.0/5yywrk2
| | | | | |\| | | | | | | | |
| | | | | |\ \ \ \ \ \ \ \ \ \
| | | | | | |_|/ / / / / / / /
| | | | | |/| | | | | | | | |
| | | | | | |\ \ \ \ \ \ \ \ \
| | | | | | | |_|_|_|_|/ / / /
| | | | | | |/| | | | | | | |
| | | | | | o | | | | | | | | libxml2@2.10.1/4aq5aj2
| |_|_|_|_|/| | | | | | | | |
|/| | | | | | | | | | | | | |
| | | | | | |\ \ \ \ \ \ \ \ \
| | | | | | | |_|_|_|/ / / / /
| | | | | | |/| | | | | | | |
| | | | | | | |\ \ \ \ \ \ \ \
| | | | | | | | |_|/ / / / / /
| | | | | | | |/| | | | | | |
| | | | | | | | | |/ / / / /
| | | | | | | | |/| | | | |
o | | | | | | | | | | | | | zlib@1.2.13/2hfr5rb
 / / / / / / / / / / / / /
| | | | | o | | | | | | | xz@5.2.7/nrwxyth
| | | | |  / / / / / / /
| | | | | | | o | | | | libpciaccess@0.16/p7f5n6q
| | | | | | |/| | | | |
| | | | | |/| | | | | |
| | | | | | | |\ \ \ \ \
| | | | | | | | | |_|_|/
| | | | | | | | |/| | |
| | | | | | | o | | | | util-macros@1.19.3/ao5w53r
| | | | | | |  / / / /
o | | | | | | | | | | gdbm@1.23/cpmynty
o | | | | | | | | | | readline@8.1.2/kgyvtw5
| |_|_|/ / / / / / /
|/| | | | | | | | |
| | | | | | | o | | libedit@3.1-20210216/6pzeykr
| |_|_|_|_|_|/| | |
|/| | | | |_|/ / /
| | | | |/| | | |
o | | | | | | | | ncurses@6.3/zcuawli
| |_|_|/ / / / /
|/| | | | | | |
o | | | | | | | pkgconf@1.8.0/k2lfw6f
 / / / / / / /
| | | | o | | libtool@2.4.7/bdxu4wn
| | | | | |/
| | | | |/|
| | | | o | m4@1.4.19/z7d5q4f
| | | | |\|
| | | | o | libsigsegv@2.13/e262sf6
| | | |  /
o | | | | bzip2@1.0.8/cxcreln
| |_|_|/
|/| | |
o | | | diffutils@3.8/c3uhkcj
| |_|/
|/| |
o | | libiconv@1.16/ltvovvv
 / /
| o ca-certificates-mozilla@2022-10-11/aurd37j
|
o berkeley-db@18.1.40/53fb72w

You can control how the output is displayed with a number of options.

The ASCII output from spack graph can be difficult to parse for complicated packages. The output can be changed to the Graphviz .dot format using the --dot flag.

$ spack graph --dot trilinos | dot -Tpdf > trilinos_graph.pdf

Uninstalling Packages

Earlier we installed many configurations each of zlib and Tcl. Now we will go through and uninstall some of those packages that we didn’t really need.

$ spack find -d tcl
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
tcl@8.6.12
    zlib@1.2.8


-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
tcl@8.6.12
    zlib@1.2.8

tcl@8.6.12
    zlib@1.2.13

==> 3 installed packages
$ spack find zlib
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
zlib@1.2.8  zlib@1.2.13

-- linux-ubuntu18.04-x86_64 / gcc@6.5.0 -------------------------
zlib@1.2.13

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
zlib@1.2.8  zlib@1.2.13
==> 5 installed packages

We can uninstall packages by spec using the same syntax as install.

$ spack uninstall zlib %gcc@6.5.0

==> The following packages will be uninstalled:

    -- linux-ubuntu18.04-x86_64 / gcc@6.5.0 -------------------------
    6izan4f zlib@1.2.13

==> Do you want to proceed? [y/N] ==> Successfully uninstalled zlib@1.2.13%gcc@6.5.0+optimize+pic+shared build_system=makefile arch=linux-ubuntu18.04-x86_64/6izan4f
$ spack find -lf zlib
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
2xcmtth zlib@1.2.8%clang   fdbomoa zlib@1.2.13%clang

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
zqdhyiy zlib@1.2.8%gcc	cppflags="-O3"	 2hfr5rb zlib@1.2.13%gcc
==> 4 installed packages

We can also uninstall packages by referring only to their hash.

We can use either -f (force) or -R (remove dependents as well) to remove packages that are required by another installed package.

$ spack uninstall zlib/2xc
==> Will not uninstall zlib@1.2.8%clang@7.0.0/2xcmtth
The following packages depend on it:
    -- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
    36jwtbo tcl@8.6.12

==> Error: There are still dependents.
  use `spack uninstall --dependents` to remove dependents too
$ spack uninstall -R zlib/2xc

==> The following packages will be uninstalled:

    -- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
    36jwtbo tcl@8.6.12
    2xcmtth zlib@1.2.8

==> Do you want to proceed? [y/N] ==> Successfully uninstalled tcl@8.6.12%clang@7.0.0 build_system=autotools arch=linux-ubuntu18.04-x86_64/36jwtbo
==> Successfully uninstalled zlib@1.2.8%clang@7.0.0+optimize+pic+shared build_system=makefile arch=linux-ubuntu18.04-x86_64/2xcmtth

Spack will not uninstall packages that are not sufficiently specified. The -a (all) flag can be used to uninstall multiple packages at once.

$ spack uninstall trilinos
==> Error: trilinos matches multiple packages:

    -- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
    lrg5jy2 trilinos@13.0.1  yvcu2p2 trilinos@13.0.1

==> Error: You can either:
    a) use a more specific spec, or
    b) specify the spec by its hash (e.g. `spack uninstall /hash`), or
    c) use `spack uninstall --all` to uninstall ALL matching specs.
$ spack uninstall /lrg

==> The following packages will be uninstalled:

    -- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
    lrg5jy2 trilinos@13.0.1

==> Do you want to proceed? [y/N] ==> Successfully uninstalled trilinos@13.0.1%gcc@7.5.0~adelus~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest~hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~panzer~phalanx~piro~python~rocm~rocm_rdc~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus~thyra+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_system=cmake build_type=RelWithDebInfo cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64/lrg5jy2

Advanced spack find Usage

We will go over some additional uses for the spack find command not already covered in the Installing Spack and Uninstalling Packages sections.

The spack find command can accept what we call “anonymous specs.” These are expressions in spec syntax that do not contain a package name. For example, spack find ^mpich will return every installed package that depends on MPICH, and spack find cppflags="-O3" will return every package which was built with cppflags="-O3".

$ spack find ^mpich
-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
hdf5@1.12.2  trilinos@13.0.1
==> 2 installed packages
$ spack find cppflags=-O3
-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
zlib@1.2.8
==> 1 installed package

The find command can also show which packages were installed explicitly (rather than pulled in as a dependency) using the -x flag. The -X flag shows implicit installs only. The find command can also show the path to which a Spack package was installed using the -p flag.

$ spack find -px
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
zlib@1.2.13  /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/clang-7.0.0/zlib-1.2.13-fdbomoa6xopqvfi4a7jvad27yinnw47a

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
hdf5@1.12.2	 /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hdf5-1.12.2-6w4y2274lydtrgafuxq4gknrgvfg7kpj
hdf5@1.12.2	 /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hdf5-1.12.2-ty2m35svoa6x7ro7nrvqoxisqwbzp2f3
hdf5@1.12.2	 /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hdf5-1.12.2-7bnbpj2kq46c7dmdo7j6m63c5pxyaib5
tcl@8.6.12	 /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tcl-8.6.12-rakrbasefv2odpemtbrfn2qrbpeq4jip
tcl@8.6.12	 /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tcl-8.6.12-v63n6wxe4a45dbmmpqbmjpfio3z7liej
trilinos@13.0.1  /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/trilinos-13.0.1-yvcu2p2q7yeq25jfdsy3huqfozzihqk2
zlib@1.2.8	 /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.8-zqdhyiyvjrx6lhddpgv4h2nsysowhjxm
zlib@1.2.13	 /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> 9 installed packages

Customizing Compilers

Spack manages a list of available compilers on the system, detected automatically from the user’s PATH variable. The spack compilers command is an alias for the command spack compiler list.

$ spack compilers
==> Available compilers
-- clang ubuntu18.04-x86_64 -------------------------------------
clang@7.0.0  clang@6.0.0

-- gcc ubuntu18.04-x86_64 ---------------------------------------
gcc@7.5.0  gcc@6.5.0

The compilers are maintained in a YAML file. Later in the tutorial you will learn how to configure compilers by hand for special cases. Spack also has tools to add compilers, and compilers built with Spack can be added to the configuration.

$ spack install gcc@8.4.0
==> Waiting for libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
==> Waiting for libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
==> Waiting for berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
==> Waiting for pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
==> Waiting for zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> Waiting for diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
==> Waiting for ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
==> Waiting for m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
==> Waiting for bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
==> Waiting for readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
==> Waiting for libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
==> Waiting for gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
==> Waiting for perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0-4ebutg2fje7nmoqn5zack4n3hwh5xpg5
==> Waiting for autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/autoconf-2.69-qdpipdfd3pjsmnelmhnde5zr5jm7gebr
==> Waiting for texinfo-6.5-hgpn5sqlfcoshixlwrloyuervjyhh7je
==> Installing texinfo-6.5-hgpn5sqlfcoshixlwrloyuervjyhh7je
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-texinfo-6.5-hgpn5sqlfcoshixlwrloyuervjyhh7je.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/texinfo-6.5/linux-ubuntu18.04-x86_64-gcc-7.5.0-texinfo-6.5-hgpn5sqlfcoshixlwrloyuervjyhh7je.spack
==> Extracting texinfo-6.5-hgpn5sqlfcoshixlwrloyuervjyhh7je from binary cache
==> texinfo: Successfully installed texinfo-6.5-hgpn5sqlfcoshixlwrloyuervjyhh7je
  Fetch: 0.49s.  Build: 0.39s.	Total: 0.88s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/texinfo-6.5-hgpn5sqlfcoshixlwrloyuervjyhh7je
==> Waiting for automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/automake-1.16.5-l7j5vdrhtw5oc47phqkrj33ouguhje7q
==> Waiting for gmp-6.2.1-efr3j4d5qpovjxsoraexs722kxyigj2b
==> Installing gmp-6.2.1-efr3j4d5qpovjxsoraexs722kxyigj2b
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-gmp-6.2.1-efr3j4d5qpovjxsoraexs722kxyigj2b.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/gmp-6.2.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-gmp-6.2.1-efr3j4d5qpovjxsoraexs722kxyigj2b.spack
==> Extracting gmp-6.2.1-efr3j4d5qpovjxsoraexs722kxyigj2b from binary cache
==> gmp: Successfully installed gmp-6.2.1-efr3j4d5qpovjxsoraexs722kxyigj2b
  Fetch: 0.21s.  Build: 0.27s.	Total: 0.48s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gmp-6.2.1-efr3j4d5qpovjxsoraexs722kxyigj2b
==> Waiting for mpfr-3.1.6-2kns2rxbnabuc4lz3fft74w2gmbtjwyw
==> Installing mpfr-3.1.6-2kns2rxbnabuc4lz3fft74w2gmbtjwyw
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-mpfr-3.1.6-2kns2rxbnabuc4lz3fft74w2gmbtjwyw.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/mpfr-3.1.6/linux-ubuntu18.04-x86_64-gcc-7.5.0-mpfr-3.1.6-2kns2rxbnabuc4lz3fft74w2gmbtjwyw.spack
==> Extracting mpfr-3.1.6-2kns2rxbnabuc4lz3fft74w2gmbtjwyw from binary cache
==> mpfr: Successfully installed mpfr-3.1.6-2kns2rxbnabuc4lz3fft74w2gmbtjwyw
  Fetch: 0.42s.  Build: 0.30s.	Total: 0.72s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/mpfr-3.1.6-2kns2rxbnabuc4lz3fft74w2gmbtjwyw
==> Waiting for gawk-5.1.1-vkxovxa7rdxdvelwwsndk2em7k55acdj
==> Installing gawk-5.1.1-vkxovxa7rdxdvelwwsndk2em7k55acdj
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-gawk-5.1.1-vkxovxa7rdxdvelwwsndk2em7k55acdj.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/gawk-5.1.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-gawk-5.1.1-vkxovxa7rdxdvelwwsndk2em7k55acdj.spack
==> Extracting gawk-5.1.1-vkxovxa7rdxdvelwwsndk2em7k55acdj from binary cache
==> gawk: Successfully installed gawk-5.1.1-vkxovxa7rdxdvelwwsndk2em7k55acdj
  Fetch: 0.45s.  Build: 0.31s.	Total: 0.76s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gawk-5.1.1-vkxovxa7rdxdvelwwsndk2em7k55acdj
==> Waiting for mpc-1.1.0-j4r3pth5qsmgbuzlanj4x6hjh44mm53q
==> Installing mpc-1.1.0-j4r3pth5qsmgbuzlanj4x6hjh44mm53q
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-mpc-1.1.0-j4r3pth5qsmgbuzlanj4x6hjh44mm53q.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/mpc-1.1.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-mpc-1.1.0-j4r3pth5qsmgbuzlanj4x6hjh44mm53q.spack
==> Extracting mpc-1.1.0-j4r3pth5qsmgbuzlanj4x6hjh44mm53q from binary cache
==> mpc: Successfully installed mpc-1.1.0-j4r3pth5qsmgbuzlanj4x6hjh44mm53q
  Fetch: 0.18s.  Build: 0.26s.	Total: 0.44s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/mpc-1.1.0-j4r3pth5qsmgbuzlanj4x6hjh44mm53q
==> Waiting for gcc-8.4.0-lrhjoi65nltw7pnkqrne7f2jagvqxxvi
==> Installing gcc-8.4.0-lrhjoi65nltw7pnkqrne7f2jagvqxxvi
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-gcc-8.4.0-lrhjoi65nltw7pnkqrne7f2jagvqxxvi.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/gcc-8.4.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-gcc-8.4.0-lrhjoi65nltw7pnkqrne7f2jagvqxxvi.spack
==> Extracting gcc-8.4.0-lrhjoi65nltw7pnkqrne7f2jagvqxxvi from binary cache
==> gcc: Successfully installed gcc-8.4.0-lrhjoi65nltw7pnkqrne7f2jagvqxxvi
  Fetch: 1m 24.37s.  Build: 10.03s.  Total: 1m 34.41s.
[+] /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gcc-8.4.0-lrhjoi65nltw7pnkqrne7f2jagvqxxvi
$ spack find -p gcc
-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
gcc@8.4.0  /home/spack1/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gcc-8.4.0-lrhjoi65nltw7pnkqrne7f2jagvqxxvi
==> 1 installed package

We can add GCC to Spack as an available compiler using the spack compiler add command. This will allow future packages to build with gcc@8.4.0. To avoid having to copy and paste GCC’s path, we can use spack location -i to get the installation prefix.

$ spack compiler add $(spack location -i gcc@8.4.0)
==> Added 1 new compiler to /home/spack1/.spack/linux/compilers.yaml
    gcc@8.4.0
==> Compilers are defined in the following files:
    /home/spack1/.spack/linux/compilers.yaml

We can also remove compilers from our configuration using spack compiler remove <compiler_spec>

$ spack compiler remove gcc@8.4.0
==> Removed compiler gcc@8.4.0