Environments Tutorial

In this tutorial we’ll go end-to-end from installing Spack, to create a Spack environment, install software in it, and finally, reproduce the same environment at a different location. We’ll discuss relevant features of Spack along the way, as soon as they are used.

Spack Environments allow you to work with independent groups of packages separately, in a reproducible way. To some extent, Spack environments are similar to virtual environments or profiles in other systems. They are based around file formats (spack.yaml and spack.lock) that can be shared easily and re-used by others across systems.

Administering properly configured software involving lots of packages and/or varying configuration requirements for multiple projects can be overwhelming. Spack environments allow you to readily:

  • establish standard software requirements for your project(s);

  • set up run environments for users;

  • support your usual development environment(s);

  • set up packages for CI/CD;

  • reproduce builds (approximately or exactly) on other machines; and

  • much more.

Get started with Spack

Spack works out of the box, and doesn’t require daemons running, or root privileges to be installed. Simply clone Spack to get going. We will clone Spack and immediately check out the most recent release, v0.22.

$ git clone --depth=100 --branch=releases/v0.22 https://github.com/spack/spack.git ~/spack
Cloning into '/home/spack/spack'...
remote: Enumerating objects: 21307, done.K
remote: Counting objects: 100% (21307/21307), done.K
remote: Compressing objects: 100% (11463/11463), done.K
remote:nTotale21307 (delta12381),3reused.16119B(delta71961),spack-reused 0K
Receiving objects: 100% (21307/21307), 14.08MMiB||121.58MMiB/s, done.
Resolving deltas: 100% (2381/2381), done.
$ cd ~/spack

Next, we’ll add Spack to our path. Spack has some nice command-line integration tools, so instead of simply prepending to our PATH variable, let’s source the Spack setup script:

$ . share/spack/setup-env.sh

Installing a package is now as simple as writing spack install <packagename>:

$ spack install gmake
[+] /usr (external glibc-2.35-a7drdl4tlx4bu3mzhor75pskvd3pdot6)
==> Installing gcc-runtime-11.4.0-f47qm6qeplqyahc4zhfpfdnf5mo6gxvd [2/3]
==> No binary for gcc-runtime-11.4.0-f47qm6qeplqyahc4zhfpfdnf5mo6gxvd found: installing from source
==> No patches needed for gcc-runtime
==> gcc-runtime: Executing phase: 'install'
==> gcc-runtime: Successfully installed gcc-runtime-11.4.0-f47qm6qeplqyahc4zhfpfdnf5mo6gxvd
  Stage: 0.00s.  Install: 0.08s.  Post-install: 0.06s.	Total: 0.21s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gcc-runtime-11.4.0-f47qm6qeplqyahc4zhfpfdnf5mo6gxvd
==> Installing gmake-4.4.1-qfrotccvbyovembcoto3jajc3vuvcejo [3/3]
==> No binary for gmake-4.4.1-qfrotccvbyovembcoto3jajc3vuvcejo found: installing from source
==> Fetching https://mirror.spack.io/_source-cache/archive/dd/dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3.tar.gz
==> No patches needed for gmake
==> gmake: Executing phase: 'install'
==> gmake: Successfully installed gmake-4.4.1-qfrotccvbyovembcoto3jajc3vuvcejo
  Stage: 0.51s.  Install: 16.23s.  Post-install: 0.02s.  Total: 16.80s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gmake-4.4.1-qfrotccvbyovembcoto3jajc3vuvcejo

Don’t worry if this command seems to take a long time. The first command ever executed after a fresh installation of Spack computes a few file caches for later reuse. This takes around a minute on slow filesystems. Later commands will be faster.

Let’s take the opportunity of this first installation to show some key concepts of Spack.

Hashes and Spack’s store

Spack generates a hash for each configuration to be installed. This hash is a function of the full provenance of the installation, including:

  1. The dependency graph, including all of its node and edge attributes

  2. The package.py recipe used to perform the build

Any change to the spec or to the recipes used to build the software affects the hash.

Spack uses this value to compare specs and to generate unique installation directories for every combinatorial version. Let’s install a different version of gmake alongside the one we just installed:

$ spack install gmake@4.3
[+] /usr (external glibc-2.35-a7drdl4tlx4bu3mzhor75pskvd3pdot6)
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gcc-runtime-11.4.0-f47qm6qeplqyahc4zhfpfdnf5mo6gxvd
==> Installing gmake-4.3-tvm3b6h6n3gvlqafxe4sc4sh44luaoxi [3/3]
==> No binary for gmake-4.3-tvm3b6h6n3gvlqafxe4sc4sh44luaoxi found: installing from source
==> Fetching https://mirror.spack.io/_source-cache/archive/e0/e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19.tar.gz
==> Applied patch /home/spack/spack/var/spack/repos/builtin/packages/gmake/findprog-in-ignore-directories.patch
==> gmake: Executing phase: 'install'
==> gmake: Successfully installed gmake-4.3-tvm3b6h6n3gvlqafxe4sc4sh44luaoxi
  Stage: 0.39s.  Install: 20.81s.  Post-install: 0.02s.  Total: 21.25s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gmake-4.3-tvm3b6h6n3gvlqafxe4sc4sh44luaoxi

and verify that by querying installed packages using spack find to get the installation prefix for gmake:

$ spack find -p gmake
-- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
gmake@4.3    /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gmake-4.3-tvm3b6h6n3gvlqafxe4sc4sh44luaoxi
gmake@4.4.1  /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gmake-4.4.1-qfrotccvbyovembcoto3jajc3vuvcejo
==> 2 installed packages

Software is installed in isolation, and different configurations of the same software can coexist with each other.

These concepts (hashing configurations and installing components in isolation) are typical of functional package managers, and not unique to Spack. A good reference, for people interested, is Eelco Dolstra’s Ph.D. thesis:

What differentiate Spack from other functional package managers is that the store is not located in a central system folder for all users, but instead is within the Spack installation by default.

Using Spack doesn’t require at any time more privileges than just those of your user.

Spec syntax and concretization

Spack has a unique syntax to express constraints on a configuration to be installed:

$ # Install a specific version by appending @
$ spack install hdf5@1.10.1

$ # Specify a compiler with %
$ spack install hdf5@1.10.1 %gcc@11

$ # Enable compile-time options with +
$ spack install hdf5@1.10.1 +szip

$ # Recurse on dependencies with ^
$ spack install hdf5 ^zlib %gcc@11

A distinctive feature of Spack is that recipes for a given software are parametrized according to this syntax. To get an idea of that we can inspect a moderately complex package like hdf5:

$ spack edit hdf5

Each recipe contains:

  1. Metadata to express which constraints are valid under which condition

  2. Conditional build actions, based on the current configuration

Spack uses a solver, clingo, to resolve constraints from user requirements and packages. We call concretization the process of obtaining an optimal, hashed configuration from the whole set of input requirements.

Concretization allows a lot of flexibility in tweaking software configuration, while retaining the ability to hash the installed component.

The .spack directory

Whenever spack builds software from sources, it also stores information about the build in a .spack directory within the installation prefix:

$ ls "$(spack location -i gmake@4.4)/.spack"
install_environment.json  repos 		  spack-configure-args.txt
install_manifest.json	  spack-build-env.txt	  spec.json
install_times.json	  spack-build-out.txt.gz

Among other things, you can find:

  1. A dump of the build environment in spack-build-env.txt

  2. The compressed build log in spack-build-out.txt.gz

  3. The JSON representation of the concrete spec to be built in spec.json

  4. The recipes used to build the software under repos

Information in this directory can be used to trace provenance and debug installations, if need be.

Libc and compilers

Spack doesn’t own the libc used to deploy software, and treats compiler toolchains as node attributes.

This will change in future versions, but for the time being Spack uses packages like glibc and gcc-runtime to manage consistency requirements among different runtimes. For the rest of this section, we will ignore these components and focus on the rest of the install.

Binary caches

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/0ACDCFDA91DB974A68C3DDC2F85815B32355CB19.pub
gpg: key F85815B32355CB19: public key "e4s-uo-spack-01" imported
gpg: Total number processed: 1
gpg:		   imported: 1
gpg: inserting ownertrust of 6
==> Fetching file:///mirror/build_cache/_pgp/2C8DD3224EF3573A42BD221FA8E0CA3C1C2ADA2F.pub
gpg: key A8E0CA3C1C2ADA2F: 5 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: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:	1  signed:   0	trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: inserting ownertrust of 6
==> Fetching file:///mirror/build_cache/_pgp/78F3726939CA1B94893B66E8BC86F6FB94429164.pub
gpg: key BC86F6FB94429164: public key "Spack CI Key <maintainers@spack.io>" imported
gpg: Total number processed: 1
gpg:		   imported: 1
gpg: inserting ownertrust of 6

Environment Basics

Spack environments are a way to aggregate package installations for a project or other purpose.

They have by default an associated view, which is a single prefix where all packages from the environment are linked. Let’s create a new environment called myproject:

$ spack env create myproject
==> Created environment myproject in: /home/spack/spack/var/spack/environments/myproject
==> Activate with: spack env activate myproject

You can see the environments we’ve created so far using the spack env list command:

$ spack env list
==> 1 environments
    myproject

Now let’s activate our environment. You can use spack env activate command:

$ spack env activate myproject

You can also use the spacktivate alias for short.

Note

If you use the -p option for spack env activate, Spack will prepend the environment name to the prompt. This is a handy way to be reminded if and which environment you are in.

Once you activate an environment, spack find only shows what is in the current environment. We just created this environment, so it does not contain any installed packages.

$ spack find
==> In environment myproject
==> No root specs

==> 0 installed packages

The output from spack find is now slightly different. It tells you that you’re in the myproject environment, so there is no need to panic when you see that none of the previously installed packages are available. It also states that there are no root specs. We’ll get back to what that means later.

If you only want to check what environment you are in, you can use spack env status:

$ spack env status
==> In environment myproject

If you want to leave this environment, you can use spack env deactivate or the despacktivate alias for short.

After deactivating, we can see everything installed in this Spack instance:

$ despacktivate    # short alias for 'spack env deactivate'
$ spack env status
==> No active environment
$ spack find
-- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
gcc-runtime@11.4.0  glibc@2.35	gmake@4.3  gmake@4.4.1
==> 4 installed packages

Notice that we are no longer in an environment and all our packages are still installed.

Installing packages

Now that we understand how creation and activation work, let’s go back to myproject and install a couple of packages, specifically, tcl and trilinos.

Try the usual install command first:

$ spack env activate myproject
$ spack install tcl
==> Error: Cannot install 'tcl' because no matching specs are in the current environment. You can add specs to the environment with 'spack add tcl', or as part of the install command with 'spack install --add tcl'

Environments are special in that you must add specs to them before installing. spack add allows us to do queue up several specs to be installed together. Let’s try it:

$ spack add tcl
==> Adding tcl to environment myproject
$ spack add trilinos
==> Adding trilinos to environment myproject
$ spack find
==> In environment myproject
==> 2 root specs
 -  tcl   -  trilinos

==> 0 installed packages

Now, tcl and trilinos have been registered as root specs in this environment. That is because we explicitly asked for them to be installed, so they are the roots of the combined graph of all packages we’ll install.

Now, let’s install:

$ spack install
==> Concretized trilinos
 -   jlxw43j  trilinos@15.1.1%gcc@11.4.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~pamgen~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~test~thyra+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_system=cmake build_type=Release cxxstd=17 generator=make gotype=long_long arch=linux-ubuntu22.04-x86_64_v3
 -   fkjttm2	  ^cmake@3.27.9%gcc@11.4.0~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64_v3
 -   cc6xd2h	      ^curl@8.7.1%gcc@11.4.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3
 -   pn6bnmh		  ^nghttp2@1.57.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   mhzfdlk		      ^diffutils@3.10%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   vunusyx		  ^openssl@3.3.0%gcc@11.4.0~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3
 -   yw5x67u		      ^ca-certificates-mozilla@2023-05-30%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   gk4xs2i	      ^ncurses@6.5%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools patches=7a351bc arch=linux-ubuntu22.04-x86_64_v3
 -   xqtp62n	      ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	  ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   ujih6ik	  ^hwloc@2.9.1%gcc@11.4.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~oneapi-level-zero~opencl+pci~rocm build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
 -   esgx75j	      ^libpciaccess@0.17%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   egkyddp		  ^util-macros@1.19.3%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   jv5es2y	      ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   syttnnt		  ^xz@5.4.6%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
 -   h3x3l7s	      ^pkgconf@2.2.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   4blypc6	  ^kokkos@4.2.01%gcc@11.4.0~aggressive_vectorization~compiler_warnings~cuda~debug~debug_bounds_check~debug_dualview_modify_check~deprecated_code~examples~hpx~hpx_async_dispatch~hwloc~ipo~memkind~numactl~openmp~openmptarget~pic~rocm+serial+shared~sycl~tests~threads~tuning~wrapper build_system=cmake build_type=Release cxxstd=17 generator=make intel_gpu_arch=none arch=linux-ubuntu22.04-x86_64_v3
 -   udkgdwb	  ^openblas@0.3.26%gcc@11.4.0~bignuma~consistent_fpcsr+dynamic_dispatch+fortran~ilp64+locking+pic+shared build_system=makefile symbol_suffix=none threads=none arch=linux-ubuntu22.04-x86_64_v3
 -   uliw6sp	      ^perl@5.38.0%gcc@11.4.0+cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3
 -   br27jq6		  ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3
 -   qmy6dpi		  ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   ohbrdtp		  ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   cb6x34k		      ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3
 -   kzonshw	  ^openmpi@5.0.3%gcc@11.4.0~atomics~cuda~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix~romio+rsh~static+vt+wrapper-rpath build_system=autotools fabrics=none romio-filesystem=none schedulers=none arch=linux-ubuntu22.04-x86_64_v3
 -   ljmgup2	      ^autoconf@2.72%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   7d6p4sf		  ^m4@1.4.19%gcc@11.4.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu22.04-x86_64_v3
 -   jwy3fyz		      ^libsigsegv@2.14%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   p742yhm	      ^automake@1.16.5%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   uv2twd5	      ^libevent@2.1.12%gcc@11.4.0+openssl build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   lop7htu	      ^libtool@2.4.7%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   v4yzc2w		  ^findutils@4.9.0%gcc@11.4.0 build_system=autotools patches=440b954 arch=linux-ubuntu22.04-x86_64_v3
 -   oece2d6	      ^numactl@2.0.14%gcc@11.4.0 build_system=autotools patches=4e1d78c,62fc8a8,ff37630 arch=linux-ubuntu22.04-x86_64_v3
 -   iiuja4v	      ^openssh@9.7p1%gcc@11.4.0+gssapi build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   kqbte2e		  ^krb5@1.20.1%gcc@11.4.0+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   6wy33u6		      ^bison@3.8.2%gcc@11.4.0~color build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   eux6e6v		      ^gettext@0.22.5%gcc@11.4.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   wx4xfdn			  ^tar@1.34%gcc@11.4.0 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3
 -   gk55zt7			      ^pigz@2.8%gcc@11.4.0 build_system=makefile arch=linux-ubuntu22.04-x86_64_v3
 -   ew3aaos			      ^zstd@1.5.6%gcc@11.4.0+programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
 -   swglgxe		  ^libedit@3.1-20230828%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   qwi6aof		  ^libxcrypt@4.4.35%gcc@11.4.0~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3
 -   bzewb3i	      ^pmix@5.0.1%gcc@11.4.0~docs+pmi_backwards_compatibility~python~restful build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

==> Concretized tcl
 -   dpakck4  tcl@8.6.12%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	  ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   xqtp62n	  ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

[+] /usr (external glibc-2.35-a7drdl4tlx4bu3mzhor75pskvd3pdot6)
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gcc-runtime-11.4.0-f47qm6qeplqyahc4zhfpfdnf5mo6gxvd
==> Installing ca-certificates-mozilla-2023-05-30-yw5x67uxvt6sapin6ft4cxfnwljusmbf [3/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-ca-certificates-mozilla-2023-05-30-yw5x67uxvt6sapin6ft4cxfnwljusmbf.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/ca-certificates-mozilla-2023-05-30/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-ca-certificates-mozilla-2023-05-30-yw5x67uxvt6sapin6ft4cxfnwljusmbf.spack
==> Extracting ca-certificates-mozilla-2023-05-30-yw5x67uxvt6sapin6ft4cxfnwljusmbf from binary cache
==> ca-certificates-mozilla: Successfully installed ca-certificates-mozilla-2023-05-30-yw5x67uxvt6sapin6ft4cxfnwljusmbf
  Search: 0.00s.  Fetch: 0.23s.  Install: 0.11s.  Extract: 0.08s.  Relocate: 0.01s.  Total: 0.34s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/ca-certificates-mozilla-2023-05-30-yw5x67uxvt6sapin6ft4cxfnwljusmbf
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gmake-4.4.1-qfrotccvbyovembcoto3jajc3vuvcejo
==> Installing util-macros-1.19.3-egkyddpgsgnwgmdzd4tlmqxnh3o3lhrq [5/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-util-macros-1.19.3-egkyddpgsgnwgmdzd4tlmqxnh3o3lhrq.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/util-macros-1.19.3/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-util-macros-1.19.3-egkyddpgsgnwgmdzd4tlmqxnh3o3lhrq.spack
==> Extracting util-macros-1.19.3-egkyddpgsgnwgmdzd4tlmqxnh3o3lhrq from binary cache
==> util-macros: Successfully installed util-macros-1.19.3-egkyddpgsgnwgmdzd4tlmqxnh3o3lhrq
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.03s.  Extract: 0.01s.  Relocate: 0.01s.  Total: 0.04s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/util-macros-1.19.3-egkyddpgsgnwgmdzd4tlmqxnh3o3lhrq
==> Installing zstd-1.5.6-ew3aaosbmf3ts2ylqgi4c6enfmf3m5dr [6/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-zstd-1.5.6-ew3aaosbmf3ts2ylqgi4c6enfmf3m5dr.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/zstd-1.5.6/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-zstd-1.5.6-ew3aaosbmf3ts2ylqgi4c6enfmf3m5dr.spack
==> Extracting zstd-1.5.6-ew3aaosbmf3ts2ylqgi4c6enfmf3m5dr from binary cache
==> zstd: Successfully installed zstd-1.5.6-ew3aaosbmf3ts2ylqgi4c6enfmf3m5dr
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.07s.  Extract: 0.05s.  Relocate: 0.02s.  Total: 0.08s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/zstd-1.5.6-ew3aaosbmf3ts2ylqgi4c6enfmf3m5dr
==> Installing xz-5.4.6-syttnntihi6n463mupmgl5e7kp5izxkz [7/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-xz-5.4.6-syttnntihi6n463mupmgl5e7kp5izxkz.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/xz-5.4.6/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-xz-5.4.6-syttnntihi6n463mupmgl5e7kp5izxkz.spack
==> Extracting xz-5.4.6-syttnntihi6n463mupmgl5e7kp5izxkz from binary cache
==> xz: Successfully installed xz-5.4.6-syttnntihi6n463mupmgl5e7kp5izxkz
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.15s.  Extract: 0.12s.  Relocate: 0.03s.  Total: 0.16s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/xz-5.4.6-syttnntihi6n463mupmgl5e7kp5izxkz
==> Installing pkgconf-2.2.0-h3x3l7sed4l2efuskhaldi6ilmkoyeaa [8/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-pkgconf-2.2.0-h3x3l7sed4l2efuskhaldi6ilmkoyeaa.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pkgconf-2.2.0/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-pkgconf-2.2.0-h3x3l7sed4l2efuskhaldi6ilmkoyeaa.spack
==> Extracting pkgconf-2.2.0-h3x3l7sed4l2efuskhaldi6ilmkoyeaa from binary cache
==> pkgconf: Successfully installed pkgconf-2.2.0-h3x3l7sed4l2efuskhaldi6ilmkoyeaa
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.04s.  Extract: 0.02s.  Relocate: 0.02s.  Total: 0.05s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pkgconf-2.2.0-h3x3l7sed4l2efuskhaldi6ilmkoyeaa
==> Installing zlib-ng-2.1.6-xqtp62nft6pt5slbdljucwnkl5fxd6x4 [9/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-zlib-ng-2.1.6-xqtp62nft6pt5slbdljucwnkl5fxd6x4.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/zlib-ng-2.1.6/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-zlib-ng-2.1.6-xqtp62nft6pt5slbdljucwnkl5fxd6x4.spack
==> Extracting zlib-ng-2.1.6-xqtp62nft6pt5slbdljucwnkl5fxd6x4 from binary cache
==> zlib-ng: Successfully installed zlib-ng-2.1.6-xqtp62nft6pt5slbdljucwnkl5fxd6x4
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.03s.  Extract: 0.02s.  Relocate: 0.01s.  Total: 0.04s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/zlib-ng-2.1.6-xqtp62nft6pt5slbdljucwnkl5fxd6x4
==> Installing libsigsegv-2.14-jwy3fyzf5vk74lvkdpa6uf4rqlvfz7my [10/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libsigsegv-2.14-jwy3fyzf5vk74lvkdpa6uf4rqlvfz7my.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libsigsegv-2.14/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libsigsegv-2.14-jwy3fyzf5vk74lvkdpa6uf4rqlvfz7my.spack
==> Extracting libsigsegv-2.14-jwy3fyzf5vk74lvkdpa6uf4rqlvfz7my from binary cache
==> libsigsegv: Successfully installed libsigsegv-2.14-jwy3fyzf5vk74lvkdpa6uf4rqlvfz7my
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.03s.  Extract: 0.01s.  Relocate: 0.01s.  Total: 0.04s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libsigsegv-2.14-jwy3fyzf5vk74lvkdpa6uf4rqlvfz7my
==> Installing diffutils-3.10-mhzfdlk4s72qc2lndxqz4v6tcxkis5ez [11/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-diffutils-3.10-mhzfdlk4s72qc2lndxqz4v6tcxkis5ez.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/diffutils-3.10/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-diffutils-3.10-mhzfdlk4s72qc2lndxqz4v6tcxkis5ez.spack
==> Extracting diffutils-3.10-mhzfdlk4s72qc2lndxqz4v6tcxkis5ez from binary cache
==> diffutils: Successfully installed diffutils-3.10-mhzfdlk4s72qc2lndxqz4v6tcxkis5ez
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.09s.  Extract: 0.07s.  Relocate: 0.02s.  Total: 0.09s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/diffutils-3.10-mhzfdlk4s72qc2lndxqz4v6tcxkis5ez
==> Installing findutils-4.9.0-v4yzc2wwg33pu64bs64rfhu6k4nb3r33 [12/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-findutils-4.9.0-v4yzc2wwg33pu64bs64rfhu6k4nb3r33.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/findutils-4.9.0/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-findutils-4.9.0-v4yzc2wwg33pu64bs64rfhu6k4nb3r33.spack
==> Extracting findutils-4.9.0-v4yzc2wwg33pu64bs64rfhu6k4nb3r33 from binary cache
==> findutils: Successfully installed findutils-4.9.0-v4yzc2wwg33pu64bs64rfhu6k4nb3r33
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.10s.  Extract: 0.06s.  Relocate: 0.04s.  Total: 0.11s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/findutils-4.9.0-v4yzc2wwg33pu64bs64rfhu6k4nb3r33
==> Installing berkeley-db-18.1.40-br27jq6mkoumsbtdldgzcm3lw5zqjvel [13/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-berkeley-db-18.1.40-br27jq6mkoumsbtdldgzcm3lw5zqjvel.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/berkeley-db-18.1.40/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-berkeley-db-18.1.40-br27jq6mkoumsbtdldgzcm3lw5zqjvel.spack
==> Extracting berkeley-db-18.1.40-br27jq6mkoumsbtdldgzcm3lw5zqjvel from binary cache
==> berkeley-db: Successfully installed berkeley-db-18.1.40-br27jq6mkoumsbtdldgzcm3lw5zqjvel
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.13s.  Extract: 0.10s.  Relocate: 0.02s.  Total: 0.14s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/berkeley-db-18.1.40-br27jq6mkoumsbtdldgzcm3lw5zqjvel
==> Installing ncurses-6.5-gk4xs2idegfiwoyaikamyhxkjrruxtxa [14/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-ncurses-6.5-gk4xs2idegfiwoyaikamyhxkjrruxtxa.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/ncurses-6.5/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-ncurses-6.5-gk4xs2idegfiwoyaikamyhxkjrruxtxa.spack
==> Extracting ncurses-6.5-gk4xs2idegfiwoyaikamyhxkjrruxtxa from binary cache
==> ncurses: Successfully installed ncurses-6.5-gk4xs2idegfiwoyaikamyhxkjrruxtxa
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.69s.  Extract: 0.66s.  Relocate: 0.02s.  Total: 0.70s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/ncurses-6.5-gk4xs2idegfiwoyaikamyhxkjrruxtxa
==> Installing pigz-2.8-gk55zt73c5ekv3iogqn4lo4r66tuzv5z [15/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-pigz-2.8-gk55zt73c5ekv3iogqn4lo4r66tuzv5z.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pigz-2.8/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-pigz-2.8-gk55zt73c5ekv3iogqn4lo4r66tuzv5z.spack
==> Extracting pigz-2.8-gk55zt73c5ekv3iogqn4lo4r66tuzv5z from binary cache
==> pigz: Successfully installed pigz-2.8-gk55zt73c5ekv3iogqn4lo4r66tuzv5z
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.05s.  Extract: 0.01s.  Relocate: 0.04s.  Total: 0.06s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pigz-2.8-gk55zt73c5ekv3iogqn4lo4r66tuzv5z
==> Installing libxml2-2.10.3-jv5es2yg6on55zdsb5xyvvg7xvqh6h4e [16/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libxml2-2.10.3-jv5es2yg6on55zdsb5xyvvg7xvqh6h4e.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libxml2-2.10.3/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libxml2-2.10.3-jv5es2yg6on55zdsb5xyvvg7xvqh6h4e.spack
==> Extracting libxml2-2.10.3-jv5es2yg6on55zdsb5xyvvg7xvqh6h4e from binary cache
==> libxml2: Successfully installed libxml2-2.10.3-jv5es2yg6on55zdsb5xyvvg7xvqh6h4e
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.17s.  Extract: 0.12s.  Relocate: 0.04s.  Total: 0.17s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libxml2-2.10.3-jv5es2yg6on55zdsb5xyvvg7xvqh6h4e
==> Installing tcl-8.6.12-dpakck4vt2fme3lnoqyqmmzttko5j3cu [17/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-tcl-8.6.12-dpakck4vt2fme3lnoqyqmmzttko5j3cu.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/tcl-8.6.12/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-tcl-8.6.12-dpakck4vt2fme3lnoqyqmmzttko5j3cu.spack
==> Extracting tcl-8.6.12-dpakck4vt2fme3lnoqyqmmzttko5j3cu from binary cache
==> tcl: Successfully installed tcl-8.6.12-dpakck4vt2fme3lnoqyqmmzttko5j3cu
  Search: 0.00s.  Fetch: 0.02s.  Install: 1.26s.  Extract: 1.13s.  Relocate: 0.12s.  Total: 1.27s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/tcl-8.6.12-dpakck4vt2fme3lnoqyqmmzttko5j3cu
==> Installing nghttp2-1.57.0-pn6bnmhdnu3jaiukkhvak4dbvzez4d7i [18/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-nghttp2-1.57.0-pn6bnmhdnu3jaiukkhvak4dbvzez4d7i.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/nghttp2-1.57.0/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-nghttp2-1.57.0-pn6bnmhdnu3jaiukkhvak4dbvzez4d7i.spack
==> Extracting nghttp2-1.57.0-pn6bnmhdnu3jaiukkhvak4dbvzez4d7i from binary cache
==> nghttp2: Successfully installed nghttp2-1.57.0-pn6bnmhdnu3jaiukkhvak4dbvzez4d7i
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.09s.  Extract: 0.04s.  Relocate: 0.04s.  Total: 0.09s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/nghttp2-1.57.0-pn6bnmhdnu3jaiukkhvak4dbvzez4d7i
==> Installing m4-1.4.19-7d6p4sfrp4viryzbg5nxd2nsgm46d6x2 [19/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-m4-1.4.19-7d6p4sfrp4viryzbg5nxd2nsgm46d6x2.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/m4-1.4.19/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-m4-1.4.19-7d6p4sfrp4viryzbg5nxd2nsgm46d6x2.spack
==> Extracting m4-1.4.19-7d6p4sfrp4viryzbg5nxd2nsgm46d6x2 from binary cache
==> m4: Successfully installed m4-1.4.19-7d6p4sfrp4viryzbg5nxd2nsgm46d6x2
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.07s.  Extract: 0.05s.  Relocate: 0.02s.  Total: 0.08s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/m4-1.4.19-7d6p4sfrp4viryzbg5nxd2nsgm46d6x2
==> Installing bzip2-1.0.8-qmy6dpipkzgotxrxqwxlnfsj5vbzkbcc [20/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-bzip2-1.0.8-qmy6dpipkzgotxrxqwxlnfsj5vbzkbcc.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/bzip2-1.0.8/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-bzip2-1.0.8-qmy6dpipkzgotxrxqwxlnfsj5vbzkbcc.spack
==> Extracting bzip2-1.0.8-qmy6dpipkzgotxrxqwxlnfsj5vbzkbcc from binary cache
==> bzip2: Successfully installed bzip2-1.0.8-qmy6dpipkzgotxrxqwxlnfsj5vbzkbcc
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.04s.  Extract: 0.02s.  Relocate: 0.02s.  Total: 0.05s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/bzip2-1.0.8-qmy6dpipkzgotxrxqwxlnfsj5vbzkbcc
==> Installing readline-8.2-cb6x34ku73pjh3f4t7rmpthnxuumw25x [21/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-readline-8.2-cb6x34ku73pjh3f4t7rmpthnxuumw25x.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/readline-8.2/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-readline-8.2-cb6x34ku73pjh3f4t7rmpthnxuumw25x.spack
==> Extracting readline-8.2-cb6x34ku73pjh3f4t7rmpthnxuumw25x from binary cache
==> readline: Successfully installed readline-8.2-cb6x34ku73pjh3f4t7rmpthnxuumw25x
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.08s.  Extract: 0.05s.  Relocate: 0.02s.  Total: 0.09s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/readline-8.2-cb6x34ku73pjh3f4t7rmpthnxuumw25x
==> Installing libedit-3.1-20230828-swglgxeckeajkjp4b7d66fbsyn6hjsdh [22/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libedit-3.1-20230828-swglgxeckeajkjp4b7d66fbsyn6hjsdh.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libedit-3.1-20230828/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libedit-3.1-20230828-swglgxeckeajkjp4b7d66fbsyn6hjsdh.spack
==> Extracting libedit-3.1-20230828-swglgxeckeajkjp4b7d66fbsyn6hjsdh from binary cache
==> libedit: Successfully installed libedit-3.1-20230828-swglgxeckeajkjp4b7d66fbsyn6hjsdh
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.08s.  Extract: 0.06s.  Relocate: 0.02s.  Total: 0.09s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libedit-3.1-20230828-swglgxeckeajkjp4b7d66fbsyn6hjsdh
==> Installing bison-3.8.2-6wy33u6zyt2bd2hag3abhg3ohmi6jwvc [23/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-bison-3.8.2-6wy33u6zyt2bd2hag3abhg3ohmi6jwvc.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/bison-3.8.2/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-bison-3.8.2-6wy33u6zyt2bd2hag3abhg3ohmi6jwvc.spack
==> Extracting bison-3.8.2-6wy33u6zyt2bd2hag3abhg3ohmi6jwvc from binary cache
==> bison: Successfully installed bison-3.8.2-6wy33u6zyt2bd2hag3abhg3ohmi6jwvc
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.15s.  Extract: 0.12s.  Relocate: 0.02s.  Total: 0.15s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/bison-3.8.2-6wy33u6zyt2bd2hag3abhg3ohmi6jwvc
==> Installing libtool-2.4.7-lop7htuzty2qpcu6own5hdvs6evoa2bg [24/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libtool-2.4.7-lop7htuzty2qpcu6own5hdvs6evoa2bg.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libtool-2.4.7/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libtool-2.4.7-lop7htuzty2qpcu6own5hdvs6evoa2bg.spack
==> Extracting libtool-2.4.7-lop7htuzty2qpcu6own5hdvs6evoa2bg from binary cache
==> libtool: Successfully installed libtool-2.4.7-lop7htuzty2qpcu6own5hdvs6evoa2bg
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.10s.  Extract: 0.05s.  Relocate: 0.05s.  Total: 0.11s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libtool-2.4.7-lop7htuzty2qpcu6own5hdvs6evoa2bg
==> Installing tar-1.34-wx4xfdnr4uzmlkbzpeuizbduh4e5klhj [25/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-tar-1.34-wx4xfdnr4uzmlkbzpeuizbduh4e5klhj.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/tar-1.34/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-tar-1.34-wx4xfdnr4uzmlkbzpeuizbduh4e5klhj.spack
==> Extracting tar-1.34-wx4xfdnr4uzmlkbzpeuizbduh4e5klhj from binary cache
==> tar: Successfully installed tar-1.34-wx4xfdnr4uzmlkbzpeuizbduh4e5klhj
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.13s.  Extract: 0.09s.  Relocate: 0.03s.  Total: 0.14s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/tar-1.34-wx4xfdnr4uzmlkbzpeuizbduh4e5klhj
==> Installing gdbm-1.23-ohbrdtphnhbycgd6p3btrxzjbtkwiqn6 [26/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-gdbm-1.23-ohbrdtphnhbycgd6p3btrxzjbtkwiqn6.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gdbm-1.23/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-gdbm-1.23-ohbrdtphnhbycgd6p3btrxzjbtkwiqn6.spack
==> Extracting gdbm-1.23-ohbrdtphnhbycgd6p3btrxzjbtkwiqn6 from binary cache
==> gdbm: Successfully installed gdbm-1.23-ohbrdtphnhbycgd6p3btrxzjbtkwiqn6
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.07s.  Extract: 0.04s.  Relocate: 0.02s.  Total: 0.08s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gdbm-1.23-ohbrdtphnhbycgd6p3btrxzjbtkwiqn6
==> Installing libpciaccess-0.17-esgx75jgr6iu4dkcw566yvz4tmx33ljz [27/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libpciaccess-0.17-esgx75jgr6iu4dkcw566yvz4tmx33ljz.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libpciaccess-0.17/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libpciaccess-0.17-esgx75jgr6iu4dkcw566yvz4tmx33ljz.spack
==> Extracting libpciaccess-0.17-esgx75jgr6iu4dkcw566yvz4tmx33ljz from binary cache
==> libpciaccess: Successfully installed libpciaccess-0.17-esgx75jgr6iu4dkcw566yvz4tmx33ljz
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.04s.  Extract: 0.02s.  Relocate: 0.02s.  Total: 0.05s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libpciaccess-0.17-esgx75jgr6iu4dkcw566yvz4tmx33ljz
==> Installing gettext-0.22.5-eux6e6vvrk7uz4tx3vmjkyonhnvhseeu [28/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-gettext-0.22.5-eux6e6vvrk7uz4tx3vmjkyonhnvhseeu.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gettext-0.22.5/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-gettext-0.22.5-eux6e6vvrk7uz4tx3vmjkyonhnvhseeu.spack
==> Extracting gettext-0.22.5-eux6e6vvrk7uz4tx3vmjkyonhnvhseeu from binary cache
==> gettext: Successfully installed gettext-0.22.5-eux6e6vvrk7uz4tx3vmjkyonhnvhseeu
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.72s.  Extract: 0.65s.  Relocate: 0.06s.  Total: 0.73s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gettext-0.22.5-eux6e6vvrk7uz4tx3vmjkyonhnvhseeu
==> Installing perl-5.38.0-uliw6spxatqyj5bjxwtf6ckndktozqqo [29/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-perl-5.38.0-uliw6spxatqyj5bjxwtf6ckndktozqqo.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/perl-5.38.0/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-perl-5.38.0-uliw6spxatqyj5bjxwtf6ckndktozqqo.spack
==> Extracting perl-5.38.0-uliw6spxatqyj5bjxwtf6ckndktozqqo from binary cache
==> perl: Successfully installed perl-5.38.0-uliw6spxatqyj5bjxwtf6ckndktozqqo
  Search: 0.00s.  Fetch: 0.02s.  Install: 0.96s.  Extract: 0.76s.  Relocate: 0.19s.  Total: 0.97s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/perl-5.38.0-uliw6spxatqyj5bjxwtf6ckndktozqqo
==> Installing hwloc-2.9.1-ujih6ikevwjglzswfu4wf7eimac2pvsh [30/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-hwloc-2.9.1-ujih6ikevwjglzswfu4wf7eimac2pvsh.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/hwloc-2.9.1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-hwloc-2.9.1-ujih6ikevwjglzswfu4wf7eimac2pvsh.spack
==> Extracting hwloc-2.9.1-ujih6ikevwjglzswfu4wf7eimac2pvsh from binary cache
==> hwloc: Successfully installed hwloc-2.9.1-ujih6ikevwjglzswfu4wf7eimac2pvsh
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.26s.  Extract: 0.20s.  Relocate: 0.05s.  Total: 0.27s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/hwloc-2.9.1-ujih6ikevwjglzswfu4wf7eimac2pvsh
==> Installing autoconf-2.72-ljmgup2xu5fzbqhilaeonlgfasmo5hhh [31/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-autoconf-2.72-ljmgup2xu5fzbqhilaeonlgfasmo5hhh.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/autoconf-2.72/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-autoconf-2.72-ljmgup2xu5fzbqhilaeonlgfasmo5hhh.spack
==> Extracting autoconf-2.72-ljmgup2xu5fzbqhilaeonlgfasmo5hhh from binary cache
==> autoconf: Successfully installed autoconf-2.72-ljmgup2xu5fzbqhilaeonlgfasmo5hhh
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.10s.  Extract: 0.06s.  Relocate: 0.03s.  Total: 0.11s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/autoconf-2.72-ljmgup2xu5fzbqhilaeonlgfasmo5hhh
==> Installing libxcrypt-4.4.35-qwi6aof3wwuahmefzsrnvhristv2zglh [32/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libxcrypt-4.4.35-qwi6aof3wwuahmefzsrnvhristv2zglh.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libxcrypt-4.4.35/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libxcrypt-4.4.35-qwi6aof3wwuahmefzsrnvhristv2zglh.spack
==> Extracting libxcrypt-4.4.35-qwi6aof3wwuahmefzsrnvhristv2zglh from binary cache
==> libxcrypt: Successfully installed libxcrypt-4.4.35-qwi6aof3wwuahmefzsrnvhristv2zglh
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.06s.  Extract: 0.03s.  Relocate: 0.02s.  Total: 0.07s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libxcrypt-4.4.35-qwi6aof3wwuahmefzsrnvhristv2zglh
==> Installing openssl-3.3.0-vunusyxizia47xitgoyd7ck73s3gppij [33/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-openssl-3.3.0-vunusyxizia47xitgoyd7ck73s3gppij.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openssl-3.3.0/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-openssl-3.3.0-vunusyxizia47xitgoyd7ck73s3gppij.spack
==> Extracting openssl-3.3.0-vunusyxizia47xitgoyd7ck73s3gppij from binary cache
==> openssl: Successfully installed openssl-3.3.0-vunusyxizia47xitgoyd7ck73s3gppij
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.27s.  Extract: 0.23s.  Relocate: 0.03s.  Total: 0.28s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openssl-3.3.0-vunusyxizia47xitgoyd7ck73s3gppij
==> Installing openblas-0.3.26-udkgdwb572f3cpn2el5noyuwoe6k5ujp [34/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-openblas-0.3.26-udkgdwb572f3cpn2el5noyuwoe6k5ujp.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openblas-0.3.26/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-openblas-0.3.26-udkgdwb572f3cpn2el5noyuwoe6k5ujp.spack
==> Extracting openblas-0.3.26-udkgdwb572f3cpn2el5noyuwoe6k5ujp from binary cache
==> openblas: Successfully installed openblas-0.3.26-udkgdwb572f3cpn2el5noyuwoe6k5ujp
  Search: 0.00s.  Fetch: 0.02s.  Install: 0.86s.  Extract: 0.78s.  Relocate: 0.06s.  Total: 0.88s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openblas-0.3.26-udkgdwb572f3cpn2el5noyuwoe6k5ujp
==> Installing automake-1.16.5-p742yhmxrgeohdxdmiduznbou2rnf3bt [35/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-automake-1.16.5-p742yhmxrgeohdxdmiduznbou2rnf3bt.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/automake-1.16.5/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-automake-1.16.5-p742yhmxrgeohdxdmiduznbou2rnf3bt.spack
==> Extracting automake-1.16.5-p742yhmxrgeohdxdmiduznbou2rnf3bt from binary cache
==> automake: Successfully installed automake-1.16.5-p742yhmxrgeohdxdmiduznbou2rnf3bt
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.11s.  Extract: 0.06s.  Relocate: 0.04s.  Total: 0.11s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/automake-1.16.5-p742yhmxrgeohdxdmiduznbou2rnf3bt
==> Installing curl-8.7.1-cc6xd2h6vihed63v7gavflnhgxty3pwc [36/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-curl-8.7.1-cc6xd2h6vihed63v7gavflnhgxty3pwc.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/curl-8.7.1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-curl-8.7.1-cc6xd2h6vihed63v7gavflnhgxty3pwc.spack
==> Extracting curl-8.7.1-cc6xd2h6vihed63v7gavflnhgxty3pwc from binary cache
==> curl: Successfully installed curl-8.7.1-cc6xd2h6vihed63v7gavflnhgxty3pwc
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.20s.  Extract: 0.14s.  Relocate: 0.05s.  Total: 0.21s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/curl-8.7.1-cc6xd2h6vihed63v7gavflnhgxty3pwc
==> Installing libevent-2.1.12-uv2twd5kir57zlvu4ntf3cffa2lad47g [37/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libevent-2.1.12-uv2twd5kir57zlvu4ntf3cffa2lad47g.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libevent-2.1.12/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libevent-2.1.12-uv2twd5kir57zlvu4ntf3cffa2lad47g.spack
==> Extracting libevent-2.1.12-uv2twd5kir57zlvu4ntf3cffa2lad47g from binary cache
==> libevent: Successfully installed libevent-2.1.12-uv2twd5kir57zlvu4ntf3cffa2lad47g
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.13s.  Extract: 0.09s.  Relocate: 0.02s.  Total: 0.14s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libevent-2.1.12-uv2twd5kir57zlvu4ntf3cffa2lad47g
==> Installing krb5-1.20.1-kqbte2e4fgnkv2m2zwcagwgkiluqlkdn [38/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-krb5-1.20.1-kqbte2e4fgnkv2m2zwcagwgkiluqlkdn.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/krb5-1.20.1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-krb5-1.20.1-kqbte2e4fgnkv2m2zwcagwgkiluqlkdn.spack
==> Extracting krb5-1.20.1-kqbte2e4fgnkv2m2zwcagwgkiluqlkdn from binary cache
==> krb5: Successfully installed krb5-1.20.1-kqbte2e4fgnkv2m2zwcagwgkiluqlkdn
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.19s.  Extract: 0.10s.  Relocate: 0.06s.  Total: 0.19s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/krb5-1.20.1-kqbte2e4fgnkv2m2zwcagwgkiluqlkdn
==> Installing numactl-2.0.14-oece2d6cta5zgxcbziturcqsugvbehjg [39/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-numactl-2.0.14-oece2d6cta5zgxcbziturcqsugvbehjg.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/numactl-2.0.14/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-numactl-2.0.14-oece2d6cta5zgxcbziturcqsugvbehjg.spack
==> Extracting numactl-2.0.14-oece2d6cta5zgxcbziturcqsugvbehjg from binary cache
==> numactl: Successfully installed numactl-2.0.14-oece2d6cta5zgxcbziturcqsugvbehjg
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.06s.  Extract: 0.03s.  Relocate: 0.02s.  Total: 0.07s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/numactl-2.0.14-oece2d6cta5zgxcbziturcqsugvbehjg
==> Installing cmake-3.27.9-fkjttm2fmowwdwblxovotnaxqxtehkku [40/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-cmake-3.27.9-fkjttm2fmowwdwblxovotnaxqxtehkku.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/cmake-3.27.9/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-cmake-3.27.9-fkjttm2fmowwdwblxovotnaxqxtehkku.spack
==> Extracting cmake-3.27.9-fkjttm2fmowwdwblxovotnaxqxtehkku from binary cache
==> cmake: Successfully installed cmake-3.27.9-fkjttm2fmowwdwblxovotnaxqxtehkku
  Search: 0.00s.  Fetch: 0.03s.  Install: 1.41s.  Extract: 1.28s.  Relocate: 0.12s.  Total: 1.43s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/cmake-3.27.9-fkjttm2fmowwdwblxovotnaxqxtehkku
==> Installing pmix-5.0.1-bzewb3i2g5m4lv2jq3prq6nqvzrpdilw [41/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-pmix-5.0.1-bzewb3i2g5m4lv2jq3prq6nqvzrpdilw.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pmix-5.0.1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-pmix-5.0.1-bzewb3i2g5m4lv2jq3prq6nqvzrpdilw.spack
==> Extracting pmix-5.0.1-bzewb3i2g5m4lv2jq3prq6nqvzrpdilw from binary cache
==> pmix: Successfully installed pmix-5.0.1-bzewb3i2g5m4lv2jq3prq6nqvzrpdilw
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.29s.  Extract: 0.21s.  Relocate: 0.06s.  Total: 0.30s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pmix-5.0.1-bzewb3i2g5m4lv2jq3prq6nqvzrpdilw
==> Installing openssh-9.7p1-iiuja4vvxdkrnzipyeyvzpxiqln2o2sd [42/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-openssh-9.7p1-iiuja4vvxdkrnzipyeyvzpxiqln2o2sd.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openssh-9.7p1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-openssh-9.7p1-iiuja4vvxdkrnzipyeyvzpxiqln2o2sd.spack
==> Extracting openssh-9.7p1-iiuja4vvxdkrnzipyeyvzpxiqln2o2sd from binary cache
==> openssh: Successfully installed openssh-9.7p1-iiuja4vvxdkrnzipyeyvzpxiqln2o2sd
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.19s.  Extract: 0.10s.  Relocate: 0.08s.  Total: 0.20s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openssh-9.7p1-iiuja4vvxdkrnzipyeyvzpxiqln2o2sd
==> Installing kokkos-4.2.01-4blypc6xygkwlzcvexbqylr63g65tpqk [43/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-kokkos-4.2.01-4blypc6xygkwlzcvexbqylr63g65tpqk.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/kokkos-4.2.01/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-kokkos-4.2.01-4blypc6xygkwlzcvexbqylr63g65tpqk.spack
==> Extracting kokkos-4.2.01-4blypc6xygkwlzcvexbqylr63g65tpqk from binary cache
==> kokkos: Successfully installed kokkos-4.2.01-4blypc6xygkwlzcvexbqylr63g65tpqk
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.17s.  Extract: 0.14s.  Relocate: 0.02s.  Total: 0.18s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/kokkos-4.2.01-4blypc6xygkwlzcvexbqylr63g65tpqk
==> Installing openmpi-5.0.3-kzonshw6wgio6do6gj5vk5kkhoxt2kal [44/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-openmpi-5.0.3-kzonshw6wgio6do6gj5vk5kkhoxt2kal.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openmpi-5.0.3/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-openmpi-5.0.3-kzonshw6wgio6do6gj5vk5kkhoxt2kal.spack
==> Extracting openmpi-5.0.3-kzonshw6wgio6do6gj5vk5kkhoxt2kal from binary cache
==> openmpi: Successfully installed openmpi-5.0.3-kzonshw6wgio6do6gj5vk5kkhoxt2kal
  Search: 0.00s.  Fetch: 0.02s.  Install: 1.02s.  Extract: 0.92s.  Relocate: 0.08s.  Total: 1.04s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openmpi-5.0.3-kzonshw6wgio6do6gj5vk5kkhoxt2kal
==> Installing trilinos-15.1.1-jlxw43juyunkrzjxsmzsoocykongu57a [45/45]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-trilinos-15.1.1-jlxw43juyunkrzjxsmzsoocykongu57a.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/trilinos-15.1.1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-trilinos-15.1.1-jlxw43juyunkrzjxsmzsoocykongu57a.spack
==> Extracting trilinos-15.1.1-jlxw43juyunkrzjxsmzsoocykongu57a from binary cache
==> trilinos: Successfully installed trilinos-15.1.1-jlxw43juyunkrzjxsmzsoocykongu57a
  Search: 0.00s.  Fetch: 0.03s.  Install: 2.21s.  Extract: 1.97s.  Relocate: 0.22s.  Total: 2.24s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/trilinos-15.1.1-jlxw43juyunkrzjxsmzsoocykongu57a
==> Updating view at /home/spack/spack/var/spack/environments/myproject/.spack-env/view

Note that, at the end, the environment’s view was updated to include the new installations.

Now confirm the contents of the environment using spack find:

$ spack find
==> In environment myproject
==> 2 root specs
[+] tcl  [+] trilinos

==> Installed packages
-- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
autoconf@2.72			    gettext@0.22.5	  libxml2@2.10.3   pmix@5.0.1
automake@1.16.5 		    glibc@2.35		  m4@1.4.19	   readline@8.2
berkeley-db@18.1.40		    gmake@4.4.1 	  ncurses@6.5	   tar@1.34
bison@3.8.2			    hwloc@2.9.1 	  nghttp2@1.57.0   tcl@8.6.12
bzip2@1.0.8			    kokkos@4.2.01	  numactl@2.0.14   trilinos@15.1.1
ca-certificates-mozilla@2023-05-30  krb5@1.20.1 	  openblas@0.3.26  util-macros@1.19.3
cmake@3.27.9			    libedit@3.1-20230828  openmpi@5.0.3    xz@5.4.6
curl@8.7.1			    libevent@2.1.12	  openssh@9.7p1    zlib-ng@2.1.6
diffutils@3.10			    libpciaccess@0.17	  openssl@3.3.0    zstd@1.5.6
findutils@4.9.0 		    libsigsegv@2.14	  perl@5.38.0
gcc-runtime@11.4.0		    libtool@2.4.7	  pigz@2.8
gdbm@1.23			    libxcrypt@4.4.35	  pkgconf@2.2.0
==> 45 installed packages

We can see that the roots and all their dependencies have been installed.

Creating an environment incrementally

As a short-hand, you can use the install --add flag to accomplish the same thing in one step:

$ spack install --add tcl trilinos

This both adds the specs to the environment and installs them.

You can also add and install specs to an environment incrementally. For example:

$ spack install --add tcl
$ spack install --add trilinos

If you create environments incrementally, Spack ensures that already installed roots are not re-concretized. So, adding specs to an environment at a later point in time will not cause existing packages to rebuild.

Do note however that incrementally creating an environment can give you different package versions from an environment created all at once. We will cover this after we’ve discussed different concretization strategies.

Further, there are two other advantages of concretizing and installing an environment all at once:

  • If you have a number of specs that can be installed together, adding them first and installing them together enables them to share dependencies and reduces total installation time.

  • You can launch all builds in parallel by taking advantage of Spack’s install-level build parallelism.

Using packages

Environments provide a convenient way for using installed packages. Running spack env activate gives you everything in the environment on your PATH. Otherwise, you would need to use spack load or module load for each package in order to set up the environment for the package (and its dependencies).

When you install packages into an environment, they are, by default, linked into a single prefix, or view. Activating the environment with spack env activate results in subdirectories from the view being added to PATH, MANPATH, CMAKE_PREFIX_PATH, and other environment variables. This makes the environment easier to use.

Let’s try it out. We just installed tcl into our myproject environment. Tcl includes a shell-like application called tclsh. You can see the path to tclsh using which:

$ which tclsh
/home/spack/spack/var/spack/environments/myproject/.spack-env/view/bin/tclsh

Notice its path includes the name of our environment and a view subdirectory.

You can now run tclsh like you would any other program that is in your path:

$ tclsh
% echo "hello world!"
hello world!
% exit

Uninstalling packages

We can uninstall packages from an environment without affecting other environments. This is possible since, while Spack shares common installations, environments only link to those installations.

Let’s demonstrate this feature by creating another environment. Suppose myproject requires trilinos but we have another project that has it installed but no longer requires it.

Start by creating a myproject2 environment with the installed packages scr and trilinos.

$ spack env create myproject2
==> Created environment myproject2 in: /home/spack/spack/var/spack/environments/myproject2
==> Activate with: spack env activate myproject2
$ spack env activate myproject2
$ spack add scr trilinos
==> Adding scr to environment myproject2
==> Adding trilinos to environment myproject2
$ spack install
==> Concretized scr
 -   ya6pb5o  scr@2.0.0%gcc@11.4.0+dtcmp~fortran~ipo+libyogrt async_api=NONE build_system=cmake build_type=Release cache_base=/dev/shm cntl_base=/dev/shm copy_config=none file_lock=FLOCK generator=make resource_manager=SLURM scr_config=scr.conf arch=linux-ubuntu22.04-x86_64_v3
[+]  fkjttm2	  ^cmake@3.27.9%gcc@11.4.0~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64_v3
[+]  cc6xd2h	      ^curl@8.7.1%gcc@11.4.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3
[+]  pn6bnmh		  ^nghttp2@1.57.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  mhzfdlk		      ^diffutils@3.10%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  vunusyx		  ^openssl@3.3.0%gcc@11.4.0~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3
[+]  yw5x67u		      ^ca-certificates-mozilla@2023-05-30%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  gk4xs2i	      ^ncurses@6.5%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools patches=7a351bc arch=linux-ubuntu22.04-x86_64_v3
 -   tnzjv5e	  ^dtcmp@1.1.4%gcc@11.4.0+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   of56qmr	      ^lwgrp@1.0.5%gcc@11.4.0+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	  ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   zi6ouqk	  ^libyogrt@1.33%gcc@11.4.0~static build_system=autotools scheduler=slurm arch=linux-ubuntu22.04-x86_64_v3
 -   xwp2w3p	      ^slurm@23-11-1-1%gcc@11.4.0~cgroup~gtk~hdf5~hwloc~mariadb~nvml~pam~pmix+readline~restd~rsmi build_system=autotools sysconfdir=PREFIX/etc arch=linux-ubuntu22.04-x86_64_v3
 -   vmz42uk		  ^glib@2.78.3%gcc@11.4.0~libmount~strip build_system=meson buildtype=release default_library=shared tracing=none arch=linux-ubuntu22.04-x86_64_v3
 -   mn77wzn		      ^elfutils@0.190%gcc@11.4.0~debuginfod+exeprefix+nls build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  ew3aaos			  ^zstd@1.5.6%gcc@11.4.0+programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  eux6e6v		      ^gettext@0.22.5%gcc@11.4.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  wx4xfdn			  ^tar@1.34%gcc@11.4.0 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3
[+]  gk55zt7			      ^pigz@2.8%gcc@11.4.0 build_system=makefile arch=linux-ubuntu22.04-x86_64_v3
 -   dcinbzl		      ^libffi@3.4.6%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   qxrbxf3		      ^meson@1.3.2%gcc@11.4.0 build_system=python_pip patches=0f0b1bd arch=linux-ubuntu22.04-x86_64_v3
 -   u5l5kzg			  ^py-pip@23.1.2%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   jxsxcjx			  ^py-setuptools@69.2.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   7wvz4cj			  ^py-wheel@0.41.2%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   mqbj23v			  ^python-venv@1.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   64fzfdr		      ^ninja@1.11.1%gcc@11.4.0+re2c build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   aznyzrs			  ^re2c@2.2%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   vxov4my		      ^pcre2@10.43%gcc@11.4.0~jit+multibyte build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   2esnie5		      ^python@3.11.7%gcc@11.4.0+bz2+crypt+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tkinter+uuid+zlib build_system=generic patches=13fa8bf,b0615b2,ebdca64,f2fd060 arch=linux-ubuntu22.04-x86_64_v3
 -   qhjiz57			  ^expat@2.6.2%gcc@11.4.0+libbsd build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   ca45y6k			      ^libbsd@0.12.1%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   evfudm6				  ^libmd@1.0.4%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   ejzddmp			  ^sqlite@3.43.2%gcc@11.4.0+column_metadata+dynamic_extensions+fts~functions+rtree build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   xshts7x			  ^util-linux-uuid@2.38.1%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   3ykucyw		  ^json-c@0.16%gcc@11.4.0~ipo build_system=cmake build_type=Release generator=make arch=linux-ubuntu22.04-x86_64_v3
 -   js6n6n2		  ^lz4@1.9.4%gcc@11.4.0+pic build_system=makefile libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
 -   7kfejun		  ^munge@0.5.15%gcc@11.4.0 build_system=autotools localstatedir=PREFIX/var arch=linux-ubuntu22.04-x86_64_v3
 -   idzy7y7		      ^libgcrypt@1.10.3%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   nmnrx23			  ^libgpg-error@1.49%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   3duehf4			      ^gawk@5.3.0%gcc@11.4.0~nls build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   5znqdnf				  ^gmp@6.2.1%gcc@11.4.0+cxx build_system=autotools libs=shared,static patches=69ad2e2 arch=linux-ubuntu22.04-x86_64_v3
 -   c42jb45				  ^mpfr@4.2.1%gcc@11.4.0 build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
 -   rq5jepf				      ^autoconf-archive@2023.02.20%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   y6pez2a				      ^texinfo@7.0.3%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  cb6x34k		  ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3
[+]  kzonshw	  ^openmpi@5.0.3%gcc@11.4.0~atomics~cuda~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix~romio+rsh~static+vt+wrapper-rpath build_system=autotools fabrics=none romio-filesystem=none schedulers=none arch=linux-ubuntu22.04-x86_64_v3
[+]  ljmgup2	      ^autoconf@2.72%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  7d6p4sf		  ^m4@1.4.19%gcc@11.4.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu22.04-x86_64_v3
[+]  jwy3fyz		      ^libsigsegv@2.14%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  p742yhm	      ^automake@1.16.5%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  ujih6ik	      ^hwloc@2.9.1%gcc@11.4.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~oneapi-level-zero~opencl+pci~rocm build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  esgx75j		  ^libpciaccess@0.17%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  egkyddp		      ^util-macros@1.19.3%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  jv5es2y		  ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  syttnnt		      ^xz@5.4.6%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  uv2twd5	      ^libevent@2.1.12%gcc@11.4.0+openssl build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  lop7htu	      ^libtool@2.4.7%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  v4yzc2w		  ^findutils@4.9.0%gcc@11.4.0 build_system=autotools patches=440b954 arch=linux-ubuntu22.04-x86_64_v3
[+]  oece2d6	      ^numactl@2.0.14%gcc@11.4.0 build_system=autotools patches=4e1d78c,62fc8a8,ff37630 arch=linux-ubuntu22.04-x86_64_v3
[+]  iiuja4v	      ^openssh@9.7p1%gcc@11.4.0+gssapi build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  kqbte2e		  ^krb5@1.20.1%gcc@11.4.0+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  6wy33u6		      ^bison@3.8.2%gcc@11.4.0~color build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  swglgxe		  ^libedit@3.1-20230828%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qwi6aof		  ^libxcrypt@4.4.35%gcc@11.4.0~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3
[+]  uliw6sp	      ^perl@5.38.0%gcc@11.4.0+cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3
[+]  br27jq6		  ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3
[+]  qmy6dpi		  ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  ohbrdtp		  ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  h3x3l7s	      ^pkgconf@2.2.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  bzewb3i	      ^pmix@5.0.1%gcc@11.4.0~docs+pmi_backwards_compatibility~python~restful build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   qdpmd2n	  ^pdsh@2.31%gcc@11.4.0+ssh+static_modules build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  xqtp62n	  ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

==> Concretized trilinos
[+]  jlxw43j  trilinos@15.1.1%gcc@11.4.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~pamgen~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~test~thyra+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_system=cmake build_type=Release cxxstd=17 generator=make gotype=long_long arch=linux-ubuntu22.04-x86_64_v3
[+]  fkjttm2	  ^cmake@3.27.9%gcc@11.4.0~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64_v3
[+]  cc6xd2h	      ^curl@8.7.1%gcc@11.4.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3
[+]  pn6bnmh		  ^nghttp2@1.57.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  mhzfdlk		      ^diffutils@3.10%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  vunusyx		  ^openssl@3.3.0%gcc@11.4.0~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3
[+]  yw5x67u		      ^ca-certificates-mozilla@2023-05-30%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  gk4xs2i	      ^ncurses@6.5%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools patches=7a351bc arch=linux-ubuntu22.04-x86_64_v3
[+]  xqtp62n	      ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	  ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  ujih6ik	  ^hwloc@2.9.1%gcc@11.4.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~oneapi-level-zero~opencl+pci~rocm build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  esgx75j	      ^libpciaccess@0.17%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  egkyddp		  ^util-macros@1.19.3%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  jv5es2y	      ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  syttnnt		  ^xz@5.4.6%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  h3x3l7s	      ^pkgconf@2.2.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  4blypc6	  ^kokkos@4.2.01%gcc@11.4.0~aggressive_vectorization~compiler_warnings~cuda~debug~debug_bounds_check~debug_dualview_modify_check~deprecated_code~examples~hpx~hpx_async_dispatch~hwloc~ipo~memkind~numactl~openmp~openmptarget~pic~rocm+serial+shared~sycl~tests~threads~tuning~wrapper build_system=cmake build_type=Release cxxstd=17 generator=make intel_gpu_arch=none arch=linux-ubuntu22.04-x86_64_v3
[+]  udkgdwb	  ^openblas@0.3.26%gcc@11.4.0~bignuma~consistent_fpcsr+dynamic_dispatch+fortran~ilp64+locking+pic+shared build_system=makefile symbol_suffix=none threads=none arch=linux-ubuntu22.04-x86_64_v3
[+]  uliw6sp	      ^perl@5.38.0%gcc@11.4.0+cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3
[+]  br27jq6		  ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3
[+]  qmy6dpi		  ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  ohbrdtp		  ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  cb6x34k		      ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3
[+]  kzonshw	  ^openmpi@5.0.3%gcc@11.4.0~atomics~cuda~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix~romio+rsh~static+vt+wrapper-rpath build_system=autotools fabrics=none romio-filesystem=none schedulers=none arch=linux-ubuntu22.04-x86_64_v3
[+]  ljmgup2	      ^autoconf@2.72%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  7d6p4sf		  ^m4@1.4.19%gcc@11.4.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu22.04-x86_64_v3
[+]  jwy3fyz		      ^libsigsegv@2.14%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  p742yhm	      ^automake@1.16.5%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  uv2twd5	      ^libevent@2.1.12%gcc@11.4.0+openssl build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  lop7htu	      ^libtool@2.4.7%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  v4yzc2w		  ^findutils@4.9.0%gcc@11.4.0 build_system=autotools patches=440b954 arch=linux-ubuntu22.04-x86_64_v3
[+]  oece2d6	      ^numactl@2.0.14%gcc@11.4.0 build_system=autotools patches=4e1d78c,62fc8a8,ff37630 arch=linux-ubuntu22.04-x86_64_v3
[+]  iiuja4v	      ^openssh@9.7p1%gcc@11.4.0+gssapi build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  kqbte2e		  ^krb5@1.20.1%gcc@11.4.0+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  6wy33u6		      ^bison@3.8.2%gcc@11.4.0~color build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  eux6e6v		      ^gettext@0.22.5%gcc@11.4.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  wx4xfdn			  ^tar@1.34%gcc@11.4.0 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3
[+]  gk55zt7			      ^pigz@2.8%gcc@11.4.0 build_system=makefile arch=linux-ubuntu22.04-x86_64_v3
[+]  ew3aaos			      ^zstd@1.5.6%gcc@11.4.0+programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  swglgxe		  ^libedit@3.1-20230828%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qwi6aof		  ^libxcrypt@4.4.35%gcc@11.4.0~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3
[+]  bzewb3i	      ^pmix@5.0.1%gcc@11.4.0~docs+pmi_backwards_compatibility~python~restful build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

[+] /usr (external glibc-2.35-a7drdl4tlx4bu3mzhor75pskvd3pdot6)
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gcc-runtime-11.4.0-f47qm6qeplqyahc4zhfpfdnf5mo6gxvd
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/findutils-4.9.0-v4yzc2wwg33pu64bs64rfhu6k4nb3r33
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/numactl-2.0.14-oece2d6cta5zgxcbziturcqsugvbehjg
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/xz-5.4.6-syttnntihi6n463mupmgl5e7kp5izxkz
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/ncurses-6.5-gk4xs2idegfiwoyaikamyhxkjrruxtxa
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gmake-4.4.1-qfrotccvbyovembcoto3jajc3vuvcejo
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openblas-0.3.26-udkgdwb572f3cpn2el5noyuwoe6k5ujp
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/kokkos-4.2.01-4blypc6xygkwlzcvexbqylr63g65tpqk
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libedit-3.1-20230828-swglgxeckeajkjp4b7d66fbsyn6hjsdh
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/nghttp2-1.57.0-pn6bnmhdnu3jaiukkhvak4dbvzez4d7i
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/zstd-1.5.6-ew3aaosbmf3ts2ylqgi4c6enfmf3m5dr
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/berkeley-db-18.1.40-br27jq6mkoumsbtdldgzcm3lw5zqjvel
==> Installing pdsh-2.31-qdpmd2nfdbkr36k2v7b6firjiwsblo3j [14/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-pdsh-2.31-qdpmd2nfdbkr36k2v7b6firjiwsblo3j.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pdsh-2.31/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-pdsh-2.31-qdpmd2nfdbkr36k2v7b6firjiwsblo3j.spack
==> Extracting pdsh-2.31-qdpmd2nfdbkr36k2v7b6firjiwsblo3j from binary cache
==> pdsh: Successfully installed pdsh-2.31-qdpmd2nfdbkr36k2v7b6firjiwsblo3j
  Search: 0.00s.  Fetch: 0.20s.  Install: 0.09s.  Extract: 0.06s.  Relocate: 0.01s.  Total: 0.29s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pdsh-2.31-qdpmd2nfdbkr36k2v7b6firjiwsblo3j
==> Installing lz4-1.9.4-js6n6n2g3audti3mwxdvzeq2toonpcrg [15/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-lz4-1.9.4-js6n6n2g3audti3mwxdvzeq2toonpcrg.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/lz4-1.9.4/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-lz4-1.9.4-js6n6n2g3audti3mwxdvzeq2toonpcrg.spack
==> Extracting lz4-1.9.4-js6n6n2g3audti3mwxdvzeq2toonpcrg from binary cache
==> lz4: Successfully installed lz4-1.9.4-js6n6n2g3audti3mwxdvzeq2toonpcrg
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.09s.  Extract: 0.02s.  Relocate: 0.04s.  Total: 0.10s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/lz4-1.9.4-js6n6n2g3audti3mwxdvzeq2toonpcrg
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pkgconf-2.2.0-h3x3l7sed4l2efuskhaldi6ilmkoyeaa
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/readline-8.2-cb6x34ku73pjh3f4t7rmpthnxuumw25x
==> Installing libffi-3.4.6-dcinbzl32tc7qe73qoew4eulurpzvkig [18/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libffi-3.4.6-dcinbzl32tc7qe73qoew4eulurpzvkig.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libffi-3.4.6/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libffi-3.4.6-dcinbzl32tc7qe73qoew4eulurpzvkig.spack
==> Extracting libffi-3.4.6-dcinbzl32tc7qe73qoew4eulurpzvkig from binary cache
==> libffi: Successfully installed libffi-3.4.6-dcinbzl32tc7qe73qoew4eulurpzvkig
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.04s.  Extract: 0.01s.  Relocate: 0.01s.  Total: 0.05s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libffi-3.4.6-dcinbzl32tc7qe73qoew4eulurpzvkig
==> Installing pcre2-10.43-vxov4myt27vqhloovg7ifr4irtnofmz3 [19/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-pcre2-10.43-vxov4myt27vqhloovg7ifr4irtnofmz3.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pcre2-10.43/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-pcre2-10.43-vxov4myt27vqhloovg7ifr4irtnofmz3.spack
==> Extracting pcre2-10.43-vxov4myt27vqhloovg7ifr4irtnofmz3 from binary cache
==> pcre2: Successfully installed pcre2-10.43-vxov4myt27vqhloovg7ifr4irtnofmz3
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.13s.  Extract: 0.10s.  Relocate: 0.02s.  Total: 0.13s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pcre2-10.43-vxov4myt27vqhloovg7ifr4irtnofmz3
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/zlib-ng-2.1.6-xqtp62nft6pt5slbdljucwnkl5fxd6x4
==> Installing autoconf-archive-2023.02.20-rq5jepflkcjrdarashhdmody3xoweq3x [21/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-autoconf-archive-2023.02.20-rq5jepflkcjrdarashhdmody3xoweq3x.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/autoconf-archive-2023.02.20/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-autoconf-archive-2023.02.20-rq5jepflkcjrdarashhdmody3xoweq3x.spack
==> Extracting autoconf-archive-2023.02.20-rq5jepflkcjrdarashhdmody3xoweq3x from binary cache
==> autoconf-archive: Successfully installed autoconf-archive-2023.02.20-rq5jepflkcjrdarashhdmody3xoweq3x
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.15s.  Extract: 0.12s.  Relocate: 0.01s.  Total: 0.15s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/autoconf-archive-2023.02.20-rq5jepflkcjrdarashhdmody3xoweq3x
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/bzip2-1.0.8-qmy6dpipkzgotxrxqwxlnfsj5vbzkbcc
==> Installing libmd-1.0.4-evfudm6c3pczs4mtbpzogrozhvxrtffa [23/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libmd-1.0.4-evfudm6c3pczs4mtbpzogrozhvxrtffa.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libmd-1.0.4/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libmd-1.0.4-evfudm6c3pczs4mtbpzogrozhvxrtffa.spack
==> Extracting libmd-1.0.4-evfudm6c3pczs4mtbpzogrozhvxrtffa from binary cache
==> libmd: Successfully installed libmd-1.0.4-evfudm6c3pczs4mtbpzogrozhvxrtffa
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.05s.  Extract: 0.02s.  Relocate: 0.01s.  Total: 0.06s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libmd-1.0.4-evfudm6c3pczs4mtbpzogrozhvxrtffa
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libsigsegv-2.14-jwy3fyzf5vk74lvkdpa6uf4rqlvfz7my
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libtool-2.4.7-lop7htuzty2qpcu6own5hdvs6evoa2bg
==> Installing re2c-2.2-aznyzrsgis6sugnpsivfawvk53eknaas [26/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-re2c-2.2-aznyzrsgis6sugnpsivfawvk53eknaas.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/re2c-2.2/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-re2c-2.2-aznyzrsgis6sugnpsivfawvk53eknaas.spack
==> Extracting re2c-2.2-aznyzrsgis6sugnpsivfawvk53eknaas from binary cache
==> re2c: Successfully installed re2c-2.2-aznyzrsgis6sugnpsivfawvk53eknaas
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.32s.  Extract: 0.26s.  Relocate: 0.04s.  Total: 0.33s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/re2c-2.2-aznyzrsgis6sugnpsivfawvk53eknaas
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libxcrypt-4.4.35-qwi6aof3wwuahmefzsrnvhristv2zglh
==> Installing util-linux-uuid-2.38.1-xshts7x2hjr7km6cj4zr5rpxn75tmwgp [28/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-util-linux-uuid-2.38.1-xshts7x2hjr7km6cj4zr5rpxn75tmwgp.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/util-linux-uuid-2.38.1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-util-linux-uuid-2.38.1-xshts7x2hjr7km6cj4zr5rpxn75tmwgp.spack
==> Extracting util-linux-uuid-2.38.1-xshts7x2hjr7km6cj4zr5rpxn75tmwgp from binary cache
==> util-linux-uuid: Successfully installed util-linux-uuid-2.38.1-xshts7x2hjr7km6cj4zr5rpxn75tmwgp
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.13s.  Extract: 0.11s.  Relocate: 0.01s.  Total: 0.14s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/util-linux-uuid-2.38.1-xshts7x2hjr7km6cj4zr5rpxn75tmwgp
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gdbm-1.23-ohbrdtphnhbycgd6p3btrxzjbtkwiqn6
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pigz-2.8-gk55zt73c5ekv3iogqn4lo4r66tuzv5z
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openssl-3.3.0-vunusyxizia47xitgoyd7ck73s3gppij
==> Installing sqlite-3.43.2-ejzddmpttxpjnxftj7elafkyrzrfihna [32/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-sqlite-3.43.2-ejzddmpttxpjnxftj7elafkyrzrfihna.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/sqlite-3.43.2/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-sqlite-3.43.2-ejzddmpttxpjnxftj7elafkyrzrfihna.spack
==> Extracting sqlite-3.43.2-ejzddmpttxpjnxftj7elafkyrzrfihna from binary cache
==> sqlite: Successfully installed sqlite-3.43.2-ejzddmpttxpjnxftj7elafkyrzrfihna
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.33s.  Extract: 0.28s.  Relocate: 0.04s.  Total: 0.35s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/sqlite-3.43.2-ejzddmpttxpjnxftj7elafkyrzrfihna
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libxml2-2.10.3-jv5es2yg6on55zdsb5xyvvg7xvqh6h4e
==> Installing libbsd-0.12.1-ca45y6kawcnoscyta2cacbrqsmhwhz4l [34/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libbsd-0.12.1-ca45y6kawcnoscyta2cacbrqsmhwhz4l.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libbsd-0.12.1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libbsd-0.12.1-ca45y6kawcnoscyta2cacbrqsmhwhz4l.spack
==> Extracting libbsd-0.12.1-ca45y6kawcnoscyta2cacbrqsmhwhz4l from binary cache
==> libbsd: Successfully installed libbsd-0.12.1-ca45y6kawcnoscyta2cacbrqsmhwhz4l
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.10s.  Extract: 0.06s.  Relocate: 0.02s.  Total: 0.10s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libbsd-0.12.1-ca45y6kawcnoscyta2cacbrqsmhwhz4l
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/m4-1.4.19-7d6p4sfrp4viryzbg5nxd2nsgm46d6x2
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libpciaccess-0.17-esgx75jgr6iu4dkcw566yvz4tmx33ljz
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/perl-5.38.0-uliw6spxatqyj5bjxwtf6ckndktozqqo
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/tar-1.34-wx4xfdnr4uzmlkbzpeuizbduh4e5klhj
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libevent-2.1.12-uv2twd5kir57zlvu4ntf3cffa2lad47g
==> Installing expat-2.6.2-qhjiz57tyjy7x6hszwgmj2yxxl36ejku [40/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-expat-2.6.2-qhjiz57tyjy7x6hszwgmj2yxxl36ejku.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/expat-2.6.2/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-expat-2.6.2-qhjiz57tyjy7x6hszwgmj2yxxl36ejku.spack
==> Extracting expat-2.6.2-qhjiz57tyjy7x6hszwgmj2yxxl36ejku from binary cache
==> expat: Successfully installed expat-2.6.2-qhjiz57tyjy7x6hszwgmj2yxxl36ejku
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.07s.  Extract: 0.03s.  Relocate: 0.02s.  Total: 0.07s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/expat-2.6.2-qhjiz57tyjy7x6hszwgmj2yxxl36ejku
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/hwloc-2.9.1-ujih6ikevwjglzswfu4wf7eimac2pvsh
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/autoconf-2.72-ljmgup2xu5fzbqhilaeonlgfasmo5hhh
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/curl-8.7.1-cc6xd2h6vihed63v7gavflnhgxty3pwc
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gettext-0.22.5-eux6e6vvrk7uz4tx3vmjkyonhnvhseeu
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pmix-5.0.1-bzewb3i2g5m4lv2jq3prq6nqvzrpdilw
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/automake-1.16.5-p742yhmxrgeohdxdmiduznbou2rnf3bt
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/cmake-3.27.9-fkjttm2fmowwdwblxovotnaxqxtehkku
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/krb5-1.20.1-kqbte2e4fgnkv2m2zwcagwgkiluqlkdn
==> Installing texinfo-7.0.3-y6pez2asfozl3agjwfjkak2wcysgx72s [49/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-texinfo-7.0.3-y6pez2asfozl3agjwfjkak2wcysgx72s.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/texinfo-7.0.3/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-texinfo-7.0.3-y6pez2asfozl3agjwfjkak2wcysgx72s.spack
==> Extracting texinfo-7.0.3-y6pez2asfozl3agjwfjkak2wcysgx72s from binary cache
==> texinfo: Successfully installed texinfo-7.0.3-y6pez2asfozl3agjwfjkak2wcysgx72s
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.27s.  Extract: 0.19s.  Relocate: 0.06s.  Total: 0.28s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/texinfo-7.0.3-y6pez2asfozl3agjwfjkak2wcysgx72s
==> Installing elfutils-0.190-mn77wznxbwaxb7mwm34rjjlsg3xzwuog [50/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-elfutils-0.190-mn77wznxbwaxb7mwm34rjjlsg3xzwuog.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/elfutils-0.190/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-elfutils-0.190-mn77wznxbwaxb7mwm34rjjlsg3xzwuog.spack
==> Extracting elfutils-0.190-mn77wznxbwaxb7mwm34rjjlsg3xzwuog from binary cache
==> elfutils: Successfully installed elfutils-0.190-mn77wznxbwaxb7mwm34rjjlsg3xzwuog
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.40s.  Extract: 0.30s.  Relocate: 0.08s.  Total: 0.41s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/elfutils-0.190-mn77wznxbwaxb7mwm34rjjlsg3xzwuog
==> Installing python-3.11.7-2esnie54t6wca6pwuuhrmuc4o5nihj5o [51/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-python-3.11.7-2esnie54t6wca6pwuuhrmuc4o5nihj5o.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/python-3.11.7/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-python-3.11.7-2esnie54t6wca6pwuuhrmuc4o5nihj5o.spack
==> Extracting python-3.11.7-2esnie54t6wca6pwuuhrmuc4o5nihj5o from binary cache
==> python: Successfully installed python-3.11.7-2esnie54t6wca6pwuuhrmuc4o5nihj5o
  Search: 0.00s.  Fetch: 0.06s.  Install: 3.55s.  Extract: 3.35s.  Relocate: 0.18s.  Total: 3.60s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/python-3.11.7-2esnie54t6wca6pwuuhrmuc4o5nihj5o
==> Installing gmp-6.2.1-5znqdnf25vtk4ec5s7mk4zkz6i6cz3gq [52/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-gmp-6.2.1-5znqdnf25vtk4ec5s7mk4zkz6i6cz3gq.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gmp-6.2.1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-gmp-6.2.1-5znqdnf25vtk4ec5s7mk4zkz6i6cz3gq.spack
==> Extracting gmp-6.2.1-5znqdnf25vtk4ec5s7mk4zkz6i6cz3gq from binary cache
==> gmp: Successfully installed gmp-6.2.1-5znqdnf25vtk4ec5s7mk4zkz6i6cz3gq
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.10s.  Extract: 0.04s.  Relocate: 0.04s.  Total: 0.11s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gmp-6.2.1-5znqdnf25vtk4ec5s7mk4zkz6i6cz3gq
==> Installing json-c-0.16-3ykucywp7eggcy7hljjusrfygekq5fgb [53/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-json-c-0.16-3ykucywp7eggcy7hljjusrfygekq5fgb.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/json-c-0.16/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-json-c-0.16-3ykucywp7eggcy7hljjusrfygekq5fgb.spack
==> Extracting json-c-0.16-3ykucywp7eggcy7hljjusrfygekq5fgb from binary cache
==> json-c: Successfully installed json-c-0.16-3ykucywp7eggcy7hljjusrfygekq5fgb
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.10s.  Extract: 0.02s.  Relocate: 0.04s.  Total: 0.11s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/json-c-0.16-3ykucywp7eggcy7hljjusrfygekq5fgb
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openssh-9.7p1-iiuja4vvxdkrnzipyeyvzpxiqln2o2sd
==> Installing python-venv-1.0-mqbj23vadwq372oia6nq6inufwos3n44 [55/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-python-venv-1.0-mqbj23vadwq372oia6nq6inufwos3n44.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/python-venv-1.0/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-python-venv-1.0-mqbj23vadwq372oia6nq6inufwos3n44.spack
==> Extracting python-venv-1.0-mqbj23vadwq372oia6nq6inufwos3n44 from binary cache
==> python-venv: Successfully installed python-venv-1.0-mqbj23vadwq372oia6nq6inufwos3n44
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.08s.  Extract: 0.02s.  Relocate: 0.04s.  Total: 0.09s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/python-venv-1.0-mqbj23vadwq372oia6nq6inufwos3n44
==> Installing ninja-1.11.1-64fzfdrxidbifyrtksykezgrkpqjjjni [56/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-ninja-1.11.1-64fzfdrxidbifyrtksykezgrkpqjjjni.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/ninja-1.11.1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-ninja-1.11.1-64fzfdrxidbifyrtksykezgrkpqjjjni.spack
==> Extracting ninja-1.11.1-64fzfdrxidbifyrtksykezgrkpqjjjni from binary cache
==> ninja: Successfully installed ninja-1.11.1-64fzfdrxidbifyrtksykezgrkpqjjjni
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.14s.  Extract: 0.10s.  Relocate: 0.02s.  Total: 0.15s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/ninja-1.11.1-64fzfdrxidbifyrtksykezgrkpqjjjni
==> Installing mpfr-4.2.1-c42jb452v4vwgf63vu3jwhqfru24xq6h [57/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-mpfr-4.2.1-c42jb452v4vwgf63vu3jwhqfru24xq6h.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/mpfr-4.2.1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-mpfr-4.2.1-c42jb452v4vwgf63vu3jwhqfru24xq6h.spack
==> Extracting mpfr-4.2.1-c42jb452v4vwgf63vu3jwhqfru24xq6h from binary cache
==> mpfr: Successfully installed mpfr-4.2.1-c42jb452v4vwgf63vu3jwhqfru24xq6h
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.14s.  Extract: 0.10s.  Relocate: 0.02s.  Total: 0.15s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/mpfr-4.2.1-c42jb452v4vwgf63vu3jwhqfru24xq6h
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openmpi-5.0.3-kzonshw6wgio6do6gj5vk5kkhoxt2kal
==> Installing py-pip-23.1.2-u5l5kzgk7h4ljw74vuozaz2baocqoed5 [59/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-py-pip-23.1.2-u5l5kzgk7h4ljw74vuozaz2baocqoed5.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/py-pip-23.1.2/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-py-pip-23.1.2-u5l5kzgk7h4ljw74vuozaz2baocqoed5.spack
==> Extracting py-pip-23.1.2-u5l5kzgk7h4ljw74vuozaz2baocqoed5 from binary cache
==> py-pip: Successfully installed py-pip-23.1.2-u5l5kzgk7h4ljw74vuozaz2baocqoed5
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.38s.  Extract: 0.32s.  Relocate: 0.03s.  Total: 0.39s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/py-pip-23.1.2-u5l5kzgk7h4ljw74vuozaz2baocqoed5
==> Installing gawk-5.3.0-3duehf4iefmj7rfyv52adv2x4yahvwm3 [60/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-gawk-5.3.0-3duehf4iefmj7rfyv52adv2x4yahvwm3.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gawk-5.3.0/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-gawk-5.3.0-3duehf4iefmj7rfyv52adv2x4yahvwm3.spack
==> Extracting gawk-5.3.0-3duehf4iefmj7rfyv52adv2x4yahvwm3 from binary cache
==> gawk: Successfully installed gawk-5.3.0-3duehf4iefmj7rfyv52adv2x4yahvwm3
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.14s.  Extract: 0.08s.  Relocate: 0.04s.  Total: 0.15s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gawk-5.3.0-3duehf4iefmj7rfyv52adv2x4yahvwm3
==> Installing lwgrp-1.0.5-of56qmrrpjbn2nfmqt5qv4k3wojhegtw [61/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-lwgrp-1.0.5-of56qmrrpjbn2nfmqt5qv4k3wojhegtw.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/lwgrp-1.0.5/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-lwgrp-1.0.5-of56qmrrpjbn2nfmqt5qv4k3wojhegtw.spack
==> Extracting lwgrp-1.0.5-of56qmrrpjbn2nfmqt5qv4k3wojhegtw from binary cache
==> lwgrp: Successfully installed lwgrp-1.0.5-of56qmrrpjbn2nfmqt5qv4k3wojhegtw
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.29s.  Extract: 0.03s.  Relocate: 0.23s.  Total: 0.30s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/lwgrp-1.0.5-of56qmrrpjbn2nfmqt5qv4k3wojhegtw
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/trilinos-15.1.1-jlxw43juyunkrzjxsmzsoocykongu57a
==> Installing py-setuptools-69.2.0-jxsxcjxje2xftqqqf4k33n55uhwbswlf [63/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-py-setuptools-69.2.0-jxsxcjxje2xftqqqf4k33n55uhwbswlf.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/py-setuptools-69.2.0/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-py-setuptools-69.2.0-jxsxcjxje2xftqqqf4k33n55uhwbswlf.spack
==> Extracting py-setuptools-69.2.0-jxsxcjxje2xftqqqf4k33n55uhwbswlf from binary cache
==> py-setuptools: Successfully installed py-setuptools-69.2.0-jxsxcjxje2xftqqqf4k33n55uhwbswlf
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.22s.  Extract: 0.17s.  Relocate: 0.04s.  Total: 0.23s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/py-setuptools-69.2.0-jxsxcjxje2xftqqqf4k33n55uhwbswlf
==> Installing py-wheel-0.41.2-7wvz4cjq67m6yofnwalzmea2c4ceaivy [64/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-py-wheel-0.41.2-7wvz4cjq67m6yofnwalzmea2c4ceaivy.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/py-wheel-0.41.2/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-py-wheel-0.41.2-7wvz4cjq67m6yofnwalzmea2c4ceaivy.spack
==> Extracting py-wheel-0.41.2-7wvz4cjq67m6yofnwalzmea2c4ceaivy from binary cache
==> py-wheel: Successfully installed py-wheel-0.41.2-7wvz4cjq67m6yofnwalzmea2c4ceaivy
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.08s.  Extract: 0.04s.  Relocate: 0.02s.  Total: 0.09s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/py-wheel-0.41.2-7wvz4cjq67m6yofnwalzmea2c4ceaivy
==> Installing libgpg-error-1.49-nmnrx23r6xmskkaunhfj6vcqgbqlotrh [65/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libgpg-error-1.49-nmnrx23r6xmskkaunhfj6vcqgbqlotrh.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libgpg-error-1.49/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libgpg-error-1.49-nmnrx23r6xmskkaunhfj6vcqgbqlotrh.spack
==> Extracting libgpg-error-1.49-nmnrx23r6xmskkaunhfj6vcqgbqlotrh from binary cache
==> libgpg-error: Successfully installed libgpg-error-1.49-nmnrx23r6xmskkaunhfj6vcqgbqlotrh
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.09s.  Extract: 0.06s.  Relocate: 0.02s.  Total: 0.10s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libgpg-error-1.49-nmnrx23r6xmskkaunhfj6vcqgbqlotrh
==> Installing dtcmp-1.1.4-tnzjv5e2s5xrwfn22i43dqz67b7ugdbi [66/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-dtcmp-1.1.4-tnzjv5e2s5xrwfn22i43dqz67b7ugdbi.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/dtcmp-1.1.4/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-dtcmp-1.1.4-tnzjv5e2s5xrwfn22i43dqz67b7ugdbi.spack
==> Extracting dtcmp-1.1.4-tnzjv5e2s5xrwfn22i43dqz67b7ugdbi from binary cache
==> dtcmp: Successfully installed dtcmp-1.1.4-tnzjv5e2s5xrwfn22i43dqz67b7ugdbi
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.11s.  Extract: 0.04s.  Relocate: 0.05s.  Total: 0.12s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/dtcmp-1.1.4-tnzjv5e2s5xrwfn22i43dqz67b7ugdbi
==> Installing meson-1.3.2-qxrbxf3ys5nrq7lvlizm6tkejxeiq6x6 [67/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-meson-1.3.2-qxrbxf3ys5nrq7lvlizm6tkejxeiq6x6.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/meson-1.3.2/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-meson-1.3.2-qxrbxf3ys5nrq7lvlizm6tkejxeiq6x6.spack
==> Extracting meson-1.3.2-qxrbxf3ys5nrq7lvlizm6tkejxeiq6x6 from binary cache
==> meson: Successfully installed meson-1.3.2-qxrbxf3ys5nrq7lvlizm6tkejxeiq6x6
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.25s.  Extract: 0.18s.  Relocate: 0.04s.  Total: 0.26s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/meson-1.3.2-qxrbxf3ys5nrq7lvlizm6tkejxeiq6x6
==> Installing libgcrypt-1.10.3-idzy7y7vjust6u7p66c6jtxlghe3ylzs [68/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libgcrypt-1.10.3-idzy7y7vjust6u7p66c6jtxlghe3ylzs.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libgcrypt-1.10.3/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libgcrypt-1.10.3-idzy7y7vjust6u7p66c6jtxlghe3ylzs.spack
==> Extracting libgcrypt-1.10.3-idzy7y7vjust6u7p66c6jtxlghe3ylzs from binary cache
==> libgcrypt: Successfully installed libgcrypt-1.10.3-idzy7y7vjust6u7p66c6jtxlghe3ylzs
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.11s.  Extract: 0.07s.  Relocate: 0.02s.  Total: 0.12s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libgcrypt-1.10.3-idzy7y7vjust6u7p66c6jtxlghe3ylzs
==> Installing glib-2.78.3-vmz42ukohykbekspt3q7vq242i7ox3e5 [69/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-glib-2.78.3-vmz42ukohykbekspt3q7vq242i7ox3e5.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/glib-2.78.3/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-glib-2.78.3-vmz42ukohykbekspt3q7vq242i7ox3e5.spack
==> Extracting glib-2.78.3-vmz42ukohykbekspt3q7vq242i7ox3e5 from binary cache
==> glib: Successfully installed glib-2.78.3-vmz42ukohykbekspt3q7vq242i7ox3e5
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.39s.  Extract: 0.28s.  Relocate: 0.08s.  Total: 0.40s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/glib-2.78.3-vmz42ukohykbekspt3q7vq242i7ox3e5
==> Installing munge-0.5.15-7kfejun3osyyxfi4achqfdy76j3m6gh7 [70/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-munge-0.5.15-7kfejun3osyyxfi4achqfdy76j3m6gh7.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/munge-0.5.15/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-munge-0.5.15-7kfejun3osyyxfi4achqfdy76j3m6gh7.spack
==> Extracting munge-0.5.15-7kfejun3osyyxfi4achqfdy76j3m6gh7 from binary cache
==> munge: Successfully installed munge-0.5.15-7kfejun3osyyxfi4achqfdy76j3m6gh7
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.15s.  Extract: 0.04s.  Relocate: 0.07s.  Total: 0.15s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/munge-0.5.15-7kfejun3osyyxfi4achqfdy76j3m6gh7
==> Installing slurm-23-11-1-1-xwp2w3pyffzamgjt5paebuk2zgitoog7 [71/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-slurm-23-11-1-1-xwp2w3pyffzamgjt5paebuk2zgitoog7.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/slurm-23-11-1-1/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-slurm-23-11-1-1-xwp2w3pyffzamgjt5paebuk2zgitoog7.spack
==> Extracting slurm-23-11-1-1-xwp2w3pyffzamgjt5paebuk2zgitoog7 from binary cache
==> slurm: Successfully installed slurm-23-11-1-1-xwp2w3pyffzamgjt5paebuk2zgitoog7
  Search: 0.00s.  Fetch: 0.07s.  Install: 3.18s.  Extract: 2.94s.  Relocate: 0.21s.  Total: 3.25s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/slurm-23-11-1-1-xwp2w3pyffzamgjt5paebuk2zgitoog7
==> Installing libyogrt-1.33-zi6ouqkz2akdculnietqwogkyxqddokn [72/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libyogrt-1.33-zi6ouqkz2akdculnietqwogkyxqddokn.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libyogrt-1.33/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-libyogrt-1.33-zi6ouqkz2akdculnietqwogkyxqddokn.spack
==> Extracting libyogrt-1.33-zi6ouqkz2akdculnietqwogkyxqddokn from binary cache
==> libyogrt: Successfully installed libyogrt-1.33-zi6ouqkz2akdculnietqwogkyxqddokn
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.16s.  Extract: 0.04s.  Relocate: 0.08s.  Total: 0.17s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libyogrt-1.33-zi6ouqkz2akdculnietqwogkyxqddokn
==> Installing scr-2.0.0-ya6pb5oypxftulccohjfmlmdx7hmp5j3 [73/73]
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-scr-2.0.0-ya6pb5oypxftulccohjfmlmdx7hmp5j3.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/scr-2.0.0/linux-ubuntu22.04-x86_64_v3-gcc-11.4.0-scr-2.0.0-ya6pb5oypxftulccohjfmlmdx7hmp5j3.spack
==> Extracting scr-2.0.0-ya6pb5oypxftulccohjfmlmdx7hmp5j3 from binary cache
==> scr: Successfully installed scr-2.0.0-ya6pb5oypxftulccohjfmlmdx7hmp5j3
  Search: 0.00s.  Fetch: 0.01s.  Install: 0.26s.  Extract: 0.08s.  Relocate: 0.14s.  Total: 0.27s
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/scr-2.0.0-ya6pb5oypxftulccohjfmlmdx7hmp5j3
==> Updating view at /home/spack/spack/var/spack/environments/myproject2/.spack-env/view
$ spack find
==> In environment myproject2
==> 2 root specs
[+] scr  [+] trilinos

==> Installed packages
-- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
autoconf@2.72			    libbsd@0.12.1	  openssl@3.3.0
autoconf-archive@2023.02.20	    libedit@3.1-20230828  pcre2@10.43
automake@1.16.5 		    libevent@2.1.12	  pdsh@2.31
berkeley-db@18.1.40		    libffi@3.4.6	  perl@5.38.0
bison@3.8.2			    libgcrypt@1.10.3	  pigz@2.8
bzip2@1.0.8			    libgpg-error@1.49	  pkgconf@2.2.0
ca-certificates-mozilla@2023-05-30  libmd@1.0.4 	  pmix@5.0.1
cmake@3.27.9			    libpciaccess@0.17	  py-pip@23.1.2
curl@8.7.1			    libsigsegv@2.14	  py-setuptools@69.2.0
diffutils@3.10			    libtool@2.4.7	  py-wheel@0.41.2
dtcmp@1.1.4			    libxcrypt@4.4.35	  python@3.11.7
elfutils@0.190			    libxml2@2.10.3	  python-venv@1.0
expat@2.6.2			    libyogrt@1.33	  re2c@2.2
findutils@4.9.0 		    lwgrp@1.0.5 	  readline@8.2
gawk@5.3.0			    lz4@1.9.4		  scr@2.0.0
gcc-runtime@11.4.0		    m4@1.4.19		  slurm@23-11-1-1
gdbm@1.23			    meson@1.3.2 	  sqlite@3.43.2
gettext@0.22.5			    mpfr@4.2.1		  tar@1.34
glib@2.78.3			    munge@0.5.15	  texinfo@7.0.3
glibc@2.35			    ncurses@6.5 	  trilinos@15.1.1
gmake@4.4.1			    nghttp2@1.57.0	  util-linux-uuid@2.38.1
gmp@6.2.1			    ninja@1.11.1	  util-macros@1.19.3
hwloc@2.9.1			    numactl@2.0.14	  xz@5.4.6
json-c@0.16			    openblas@0.3.26	  zlib-ng@2.1.6
kokkos@4.2.01			    openmpi@5.0.3	  zstd@1.5.6
krb5@1.20.1			    openssh@9.7p1
==> 77 installed packages

Now we have two environments. The myproject environment has tcl and trilinos while the myproject2 environment has scr and trilinos.

Now let’s try to uninstall trilinos from myproject2 and review the contents of the environment:

$ spack uninstall -y trilinos
==> Refusing to uninstall the following specs
    -- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
    jlxw43j trilinos@15.1.1

==> The following environments still reference these specs:
    myproject

==> Error: There are still dependents.
  use `spack env remove` to remove environments
  use `spack uninstall --force` to override
$ spack find
==> In environment myproject2
==> 2 root specs
[+] scr  [+] trilinos

==> Installed packages
-- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
autoconf@2.72			    libbsd@0.12.1	  openssl@3.3.0
autoconf-archive@2023.02.20	    libedit@3.1-20230828  pcre2@10.43
automake@1.16.5 		    libevent@2.1.12	  pdsh@2.31
berkeley-db@18.1.40		    libffi@3.4.6	  perl@5.38.0
bison@3.8.2			    libgcrypt@1.10.3	  pigz@2.8
bzip2@1.0.8			    libgpg-error@1.49	  pkgconf@2.2.0
ca-certificates-mozilla@2023-05-30  libmd@1.0.4 	  pmix@5.0.1
cmake@3.27.9			    libpciaccess@0.17	  py-pip@23.1.2
curl@8.7.1			    libsigsegv@2.14	  py-setuptools@69.2.0
diffutils@3.10			    libtool@2.4.7	  py-wheel@0.41.2
dtcmp@1.1.4			    libxcrypt@4.4.35	  python@3.11.7
elfutils@0.190			    libxml2@2.10.3	  python-venv@1.0
expat@2.6.2			    libyogrt@1.33	  re2c@2.2
findutils@4.9.0 		    lwgrp@1.0.5 	  readline@8.2
gawk@5.3.0			    lz4@1.9.4		  scr@2.0.0
gcc-runtime@11.4.0		    m4@1.4.19		  slurm@23-11-1-1
gdbm@1.23			    meson@1.3.2 	  sqlite@3.43.2
gettext@0.22.5			    mpfr@4.2.1		  tar@1.34
glib@2.78.3			    munge@0.5.15	  texinfo@7.0.3
glibc@2.35			    ncurses@6.5 	  trilinos@15.1.1
gmake@4.4.1			    nghttp2@1.57.0	  util-linux-uuid@2.38.1
gmp@6.2.1			    ninja@1.11.1	  util-macros@1.19.3
hwloc@2.9.1			    numactl@2.0.14	  xz@5.4.6
json-c@0.16			    openblas@0.3.26	  zlib-ng@2.1.6
kokkos@4.2.01			    openmpi@5.0.3	  zstd@1.5.6
krb5@1.20.1			    openssh@9.7p1
==> 77 installed packages

We can see that trilinos won’t be uninstalled because it is still referenced in another environment managed by spack. If we want to remove it from the roots list we need to use spack remove:

$ spack remove trilinos
==> trilinos has been removed from /home/spack/spack/var/spack/environments/myproject2/spack.yaml
$ spack find
==> In environment myproject2
==> 1 root specs
[+] scr

==> Installed packages
-- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
autoconf@2.72			    libbsd@0.12.1	  openssl@3.3.0
autoconf-archive@2023.02.20	    libedit@3.1-20230828  pcre2@10.43
automake@1.16.5 		    libevent@2.1.12	  pdsh@2.31
berkeley-db@18.1.40		    libffi@3.4.6	  perl@5.38.0
bison@3.8.2			    libgcrypt@1.10.3	  pigz@2.8
bzip2@1.0.8			    libgpg-error@1.49	  pkgconf@2.2.0
ca-certificates-mozilla@2023-05-30  libmd@1.0.4 	  pmix@5.0.1
cmake@3.27.9			    libpciaccess@0.17	  py-pip@23.1.2
curl@8.7.1			    libsigsegv@2.14	  py-setuptools@69.2.0
diffutils@3.10			    libtool@2.4.7	  py-wheel@0.41.2
dtcmp@1.1.4			    libxcrypt@4.4.35	  python@3.11.7
elfutils@0.190			    libxml2@2.10.3	  python-venv@1.0
expat@2.6.2			    libyogrt@1.33	  re2c@2.2
findutils@4.9.0 		    lwgrp@1.0.5 	  readline@8.2
gawk@5.3.0			    lz4@1.9.4		  scr@2.0.0
gcc-runtime@11.4.0		    m4@1.4.19		  slurm@23-11-1-1
gdbm@1.23			    meson@1.3.2 	  sqlite@3.43.2
gettext@0.22.5			    mpfr@4.2.1		  tar@1.34
glib@2.78.3			    munge@0.5.15	  texinfo@7.0.3
glibc@2.35			    ncurses@6.5 	  trilinos@15.1.1
gmake@4.4.1			    nghttp2@1.57.0	  util-linux-uuid@2.38.1
gmp@6.2.1			    ninja@1.11.1	  util-macros@1.19.3
hwloc@2.9.1			    numactl@2.0.14	  xz@5.4.6
json-c@0.16			    openblas@0.3.26	  zlib-ng@2.1.6
kokkos@4.2.01			    openmpi@5.0.3	  zstd@1.5.6
krb5@1.20.1			    openssh@9.7p1
==> 77 installed packages
$ spack concretize
==> Updating view at /home/spack/spack/var/spack/environments/myproject2/.spack-env/view
$ spack find
==> In environment myproject2
==> 1 root specs
[+] scr

==> Installed packages
-- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
autoconf@2.72			    libbsd@0.12.1	  openssl@3.3.0
autoconf-archive@2023.02.20	    libedit@3.1-20230828  pcre2@10.43
automake@1.16.5 		    libevent@2.1.12	  pdsh@2.31
berkeley-db@18.1.40		    libffi@3.4.6	  perl@5.38.0
bison@3.8.2			    libgcrypt@1.10.3	  pigz@2.8
bzip2@1.0.8			    libgpg-error@1.49	  pkgconf@2.2.0
ca-certificates-mozilla@2023-05-30  libmd@1.0.4 	  pmix@5.0.1
cmake@3.27.9			    libpciaccess@0.17	  py-pip@23.1.2
curl@8.7.1			    libsigsegv@2.14	  py-setuptools@69.2.0
diffutils@3.10			    libtool@2.4.7	  py-wheel@0.41.2
dtcmp@1.1.4			    libxcrypt@4.4.35	  python@3.11.7
elfutils@0.190			    libxml2@2.10.3	  python-venv@1.0
expat@2.6.2			    libyogrt@1.33	  re2c@2.2
findutils@4.9.0 		    lwgrp@1.0.5 	  readline@8.2
gawk@5.3.0			    lz4@1.9.4		  scr@2.0.0
gcc-runtime@11.4.0		    m4@1.4.19		  slurm@23-11-1-1
gdbm@1.23			    meson@1.3.2 	  sqlite@3.43.2
gettext@0.22.5			    mpfr@4.2.1		  tar@1.34
glib@2.78.3			    munge@0.5.15	  texinfo@7.0.3
glibc@2.35			    ncurses@6.5 	  util-linux-uuid@2.38.1
gmake@4.4.1			    nghttp2@1.57.0	  util-macros@1.19.3
gmp@6.2.1			    ninja@1.11.1	  xz@5.4.6
hwloc@2.9.1			    numactl@2.0.14	  zlib-ng@2.1.6
json-c@0.16			    openmpi@5.0.3	  zstd@1.5.6
krb5@1.20.1			    openssh@9.7p1
==> 74 installed packages

When the spec is first removed, we see that it is no longer a root but is still present in the installed specs. Once we reconcretize, the vestigial spec is removed. Now, it is no longer a root and will need to be re-added before being installed as part of this environment.

We know trilinos is still needed for the myproject environment, so let’s switch back to confirm that it is still installed in that environment.

$ spack env activate myproject
$ spack find
==> In environment myproject
==> 2 root specs
[+] tcl  [+] trilinos

==> Installed packages
-- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
autoconf@2.72			    gettext@0.22.5	  libxml2@2.10.3   pmix@5.0.1
automake@1.16.5 		    glibc@2.35		  m4@1.4.19	   readline@8.2
berkeley-db@18.1.40		    gmake@4.4.1 	  ncurses@6.5	   tar@1.34
bison@3.8.2			    hwloc@2.9.1 	  nghttp2@1.57.0   tcl@8.6.12
bzip2@1.0.8			    kokkos@4.2.01	  numactl@2.0.14   trilinos@15.1.1
ca-certificates-mozilla@2023-05-30  krb5@1.20.1 	  openblas@0.3.26  util-macros@1.19.3
cmake@3.27.9			    libedit@3.1-20230828  openmpi@5.0.3    xz@5.4.6
curl@8.7.1			    libevent@2.1.12	  openssh@9.7p1    zlib-ng@2.1.6
diffutils@3.10			    libpciaccess@0.17	  openssl@3.3.0    zstd@1.5.6
findutils@4.9.0 		    libsigsegv@2.14	  perl@5.38.0
gcc-runtime@11.4.0		    libtool@2.4.7	  pigz@2.8
gdbm@1.23			    libxcrypt@4.4.35	  pkgconf@2.2.0
==> 45 installed packages

Phew! We see that myproject still has trilinos as a root spec. Spack uses reference counting to ensure that we don’t remove trilinos when it is still needed by myproject.

Note

Trilinos would only have been uninstalled by Spack if it were no longer needed by any environments or their package dependencies.

You can also uninstall a package and remove it from the environment in one go with spack uninstall --remove trilinos.

The spack.yaml file

An environment is more than just a list of root specs. It includes configuration settings that affect the way Spack behaves when the environment is activated.

So far, myproject relies on configuration defaults that can be overridden. Here we’ll look at how to add specs and ensure all the packages depending on mpi build with mpich. We can customize the selection of the mpi provider using concretization preferences to change the behavior of the concretizer.

Let’s start by looking at the configuration of our environment using spack config get:

$ spack config get
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
  # add package specs to the `specs` list
  specs:
  - tcl
  - trilinos
  view: true
  concretizer:
    unify: true
    reuse: true
    targets:
    # Determine whether we want to target specific or generic
    # microarchitectures. Valid values are: "microarchitectures" or "generic".
    # An example of "microarchitectures" would be "skylake" or "bulldozer",
    # while an example of "generic" would be "aarch64" or "x86_64_v4".
      granularity: microarchitectures
    # If "false" allow targets that are incompatible with the current host (for
    # instance concretize with target "icelake" while running on "haswell").
    # If "true" only allow targets that are compatible with the host.
      host_compatible: true
  # When "true" concretize root specs of environments together, so that each unique
  # package in an environment corresponds to one concrete spec. This ensures
  # environments can always be activated. When "false" perform concretization separately
  # on each root spec, allowing different versions and variants of the same package in
  # an environment.
    duplicates:
    # "none": allows a single node for any package in the DAG.
    # "minimal": allows the duplication of 'build-tools' nodes only (e.g. py-setuptools, cmake etc.)
    # "full" (experimental): allows separation of the entire build-tool stack (e.g. the entire "cmake" subDAG)
      strategy: minimal
  # Option to specify compatiblity between operating systems for reuse of compilers and packages
  # Specified as a key: [list] where the key is the os that is being targeted, and the list contains the OS's
  # it can reuse. Note this is a directional compatibility so mutual compatibility between two OS's
  # requires two entries i.e. os_compatible: {sonoma: [monterey], monterey: [sonoma]}
    os_compatible: {}
  compilers:
  - compiler:
      spec: clang@=14.0.0
      paths:
	cc: /usr/bin/clang
	cxx: /usr/bin/clang++
	f77: null
	fc: null
      flags: {}
      operating_system: ubuntu22.04
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []
  - compiler:
      spec: gcc@=10.5.0
      paths:
	cc: /usr/bin/gcc-10
	cxx: /usr/bin/g++-10
	f77: /usr/bin/gfortran-10
	fc: /usr/bin/gfortran-10
      flags: {}
      operating_system: ubuntu22.04
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []
  - compiler:
      spec: gcc@=11.4.0
      paths:
	cc: /usr/bin/gcc
	cxx: /usr/bin/g++
	f77: /usr/bin/gfortran
	fc: /usr/bin/gfortran
      flags: {}
      operating_system: ubuntu22.04
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []
  definitions: {}
  develop: {}
  mirrors:
    tutorial: /mirror
    spack-public:
      binary: false
      url: https://mirror.spack.io
  repos:
  - $spack/var/spack/repos/builtin
  packages:
    all:
      target: [x86_64_v3]
      providers:
	iconv: [glibc, musl, libiconv]
	awk: [gawk]
	armci: [armcimpi]
	blas: [openblas, amdblis]
	D: [ldc]
	daal: [intel-oneapi-daal]
	elf: [elfutils]
	fftw-api: [fftw, amdfftw]
	flame: [libflame, amdlibflame]
	fortran-rt: [gcc-runtime, intel-oneapi-runtime]
	fuse: [libfuse]
	gl: [glx, osmesa]
	glu: [mesa-glu, openglu]
	golang: [go, gcc]
	go-or-gccgo-bootstrap: [go-bootstrap, gcc]
	ipp: [intel-oneapi-ipp]
	java: [openjdk, jdk, ibm-java]
	jpeg: [libjpeg-turbo, libjpeg]
	lapack: [openblas, amdlibflame]
	libc: [glibc, musl]
	libgfortran: [gcc-runtime]
	libglx: [mesa+glx, mesa18+glx]
	libifcore: [intel-oneapi-runtime]
	libllvm: [llvm]
	libosmesa: [mesa+osmesa, mesa18+osmesa]
	lua-lang: [lua, lua-luajit-openresty, lua-luajit]
	luajit: [lua-luajit-openresty, lua-luajit]
	mariadb-client: [mariadb-c-client, mariadb]
	mkl: [intel-oneapi-mkl]
	mpe: [mpe2]
	mpi: [openmpi, mpich]
	mysql-client: [mysql, mariadb-c-client]
	opencl: [pocl]
	onedal: [intel-oneapi-dal]
	pbs: [openpbs, torque]
	pil: [py-pillow]
	pkgconfig: [pkgconf, pkg-config]
	qmake: [qt-base, qt]
	rpc: [libtirpc]
	scalapack: [netlib-scalapack, amdscalapack]
	sycl: [hipsycl]
	szip: [libaec, libszip]
	tbb: [intel-tbb]
	unwind: [libunwind]
	uuid: [util-linux-uuid, libuuid]
	xxd: [xxd-standalone, vim]
	yacc: [bison, byacc]
	ziglang: [zig]
	zlib-api: [zlib-ng+compat, zlib]
      compiler: [gcc, clang, oneapi, xl, nag, fj, aocc]
      permissions:
	read: world
	write: user
  modules:
    prefix_inspections:
      ./bin:
      - PATH
      ./man:
      - MANPATH
      ./share/man:
      - MANPATH
      ./share/aclocal:
      - ACLOCAL_PATH
      ./lib/pkgconfig:
      - PKG_CONFIG_PATH
      ./lib64/pkgconfig:
      - PKG_CONFIG_PATH
      ./share/pkgconfig:
      - PKG_CONFIG_PATH
      ./:
      - CMAKE_PREFIX_PATH

  # These are configurations for the module set named "default"
    default:
    # Where to install modules
      roots:
	tcl: $spack/share/spack/modules
	lmod: $spack/share/spack/lmod
    # What type of modules to use ("tcl" and/or "lmod")
      enable: []

      tcl:
	all:
	  autoload: direct

    # Default configurations if lmod is enabled
      lmod:
	all:
	  autoload: direct
	hierarchy:
	- mpi
  config:
    suppress_gpg_warnings: true
    install_tree:
      root: $spack/opt/spack
      projections:
	all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'
    # install_tree can include an optional padded length (int or boolean)
    # default is False (do not pad)
    # if padded_length is True, Spack will pad as close to the system max path
    # length as possible
    # if padded_length is an integer, Spack will pad to that many characters,
    # assuming it is higher than the length of the install_tree root.
    # padded_length: 128


  # Locations where templates should be found
    template_dirs:
    - $spack/share/spack/templates

  # Directory where licenses should be located
    license_dir: $spack/etc/spack/licenses
    build_stage:
    - $tempdir/$user/spack-stage
    - $user_cache_path/stage
    test_stage: $user_cache_path/test
    source_cache: $spack/var/spack/cache
    misc_cache: $user_cache_path/cache
    connect_timeout: 10
    verify_ssl: true
    ssl_certs: $SSL_CERT_FILE
    install_missing_compilers: false
    checksum: true
    deprecated: false
    dirty: false
    build_language: C
    locks: true
    url_fetch_method: urllib
    ccache: false
    concretizer: clingo
    db_lock_timeout: 60
    package_lock_timeout: null
    shared_linking:
    # Spack automatically embeds runtime search paths in ELF binaries for their
    # dependencies. Their type can either be "rpath" or "runpath". For glibc, rpath is
    # inherited and has precedence over LD_LIBRARY_PATH; runpath is not inherited
    # and of lower precedence. DO NOT MIX these within the same install tree.
      type: rpath


    # (Experimental) Embed absolute paths of dependent libraries directly in ELF
    # binaries to avoid runtime search. This can improve startup time of
    # executables with many dependencies, in particular on slow filesystems.
      bind: false


  # Set to 'false' to allow installation on filesystems that doesn't allow setgid bit
  # manipulation by unprivileged user (e.g. AFS)
    allow_sgid: true
    install_status: true
    binary_index_ttl: 600
    flags:
    # Whether to keep -Werror flags active in package builds.
      keep_werror: none

  # A mapping of aliases that can be used to define new commands. For instance,
  # `sp: spec -I` will define a new command `sp` that will execute `spec` with
  # the `-I` argument. Aliases cannot override existing commands.
    aliases:
      concretise: concretize
      containerise: containerize
      rm: remove
    debug: false
    build_jobs: 8
  upstreams: {}
  bootstrap:
    enable: true
    root: $user_cache_path/bootstrap
    sources:
    - name: github-actions-v0.5
      metadata: $spack/share/spack/bootstrap/github-actions-v0.5
    - name: github-actions-v0.4
      metadata: $spack/share/spack/bootstrap/github-actions-v0.4
    - name: spack-install
      metadata: $spack/share/spack/bootstrap/spack-install
    trusted:
    # By default we trust bootstrapping from sources and from binaries
    # produced on Github via the workflow
      github-actions-v0.5: true
      github-actions-v0.4: true
      spack-install: true
  ci: {}
  cdash: {}

The output shows the special spack.yaml configuration file that Spack uses to store the environment configuration.

There are several important parts of this file:

  • specs:: the list of specs to install

  • view:: this controls whether the environment has a view. You can set it to false to disable view generation.

  • concretizer:unify:: This controls how the specs in the environment are concretized.

The specs list should look familiar; these are the specs we’ve been modifying with spack add.

concretizer:unify:true, the default, means that they are concretized together, so that there is only one version of each package in the environment. Other options for unify are false and when_possible. false means that the specs are concretized independently, so that there may be multiple versions of the same package in the environment. when_possible lies between those options. In this case, Spack will unify as many packages in the environment, but will not fail if it cannot unify all of them.

Editing environment configuration

Note

Before proceeding, make sure your EDITOR environment variable is set to the path of your preferred text editor.

Let’s edit spack.yaml to require mpich as our mpi provider using spack config edit.

You should now have the above file open in your editor. Change it to include the packages:mpi:require entry below:

# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
  packages:
    mpi:
      require: [mpich]

  # add package specs to the `specs` list
  specs: [tcl, trilinos]

Note

We introduce this here to show you how environment configuration can affect concretization. Configuration options are covered in much more detail in the configuration tutorial.

We’ve only scratched the surface here by requiring a specific mpi provider for packages depending on mpi. There are many other customizations you can make to an environment. Refer to the links at the end of this section for more information.

Re-concretizing the environment

You may need to re-install packages in the environment after making significant changes to the configuration, such as changing virtual providers. This can be accomplished by forcing Spack to re-concretize the environment and re-install the specs.

For example, the packages installed in our myproject environment are now out of sync with our new configuration since we already installed part of the environment with openmpi. Suppose we want to install everything in myproject with mpich.

Let’s run spack concretize --force (or -f in short) to make Spack re-concretize all the environment’s specs:

$ spack concretize --force
==> Concretized tcl
[+]  dpakck4  tcl@8.6.12%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	  ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  xqtp62n	  ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

==> Concretized trilinos
 -   ugmv6no  trilinos@15.1.1%gcc@11.4.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~pamgen~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~test~thyra+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_system=cmake build_type=Release cxxstd=17 generator=make gotype=long_long arch=linux-ubuntu22.04-x86_64_v3
[+]  fkjttm2	  ^cmake@3.27.9%gcc@11.4.0~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64_v3
[+]  cc6xd2h	      ^curl@8.7.1%gcc@11.4.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3
[+]  pn6bnmh		  ^nghttp2@1.57.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  mhzfdlk		      ^diffutils@3.10%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  vunusyx		  ^openssl@3.3.0%gcc@11.4.0~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3
[+]  yw5x67u		      ^ca-certificates-mozilla@2023-05-30%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  gk4xs2i	      ^ncurses@6.5%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools patches=7a351bc arch=linux-ubuntu22.04-x86_64_v3
[+]  xqtp62n	      ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	  ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   qvu3z3l	  ^hdf5@1.14.3%gcc@11.4.0~cxx~fortran+hl~ipo~java~map+mpi+shared~subfiling~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make patches=82088c8 arch=linux-ubuntu22.04-x86_64_v3
[+]  h3x3l7s	      ^pkgconf@2.2.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  ujih6ik	  ^hwloc@2.9.1%gcc@11.4.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~oneapi-level-zero~opencl+pci~rocm build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  esgx75j	      ^libpciaccess@0.17%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  lop7htu		  ^libtool@2.4.7%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  egkyddp		  ^util-macros@1.19.3%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  jv5es2y	      ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  syttnnt		  ^xz@5.4.6%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  4blypc6	  ^kokkos@4.2.01%gcc@11.4.0~aggressive_vectorization~compiler_warnings~cuda~debug~debug_bounds_check~debug_dualview_modify_check~deprecated_code~examples~hpx~hpx_async_dispatch~hwloc~ipo~memkind~numactl~openmp~openmptarget~pic~rocm+serial+shared~sycl~tests~threads~tuning~wrapper build_system=cmake build_type=Release cxxstd=17 generator=make intel_gpu_arch=none arch=linux-ubuntu22.04-x86_64_v3
 -   ovudrqh	  ^mpich@4.2.1%gcc@11.4.0~argobots~cuda+fortran+hwloc+hydra+libxml2+pci~rocm+romio~slurm~vci~verbs+wrapperrpath~xpmem build_system=autotools datatype-engine=auto device=ch4 netmod=ofi pmi=default arch=linux-ubuntu22.04-x86_64_v3
[+]  v4yzc2w	      ^findutils@4.9.0%gcc@11.4.0 build_system=autotools patches=440b954 arch=linux-ubuntu22.04-x86_64_v3
 -   3z7q5qf	      ^libfabric@1.21.0%gcc@11.4.0~debug~kdreg~uring build_system=autotools fabrics=sockets,tcp,udp arch=linux-ubuntu22.04-x86_64_v3
 -   47js6ms	      ^yaksa@0.3%gcc@11.4.0~cuda~rocm build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  ljmgup2		  ^autoconf@2.72%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  p742yhm		  ^automake@1.16.5%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  7d6p4sf		  ^m4@1.4.19%gcc@11.4.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu22.04-x86_64_v3
[+]  jwy3fyz		      ^libsigsegv@2.14%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  2esnie5		  ^python@3.11.7%gcc@11.4.0+bz2+crypt+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tkinter+uuid+zlib build_system=generic patches=13fa8bf,b0615b2,ebdca64,f2fd060 arch=linux-ubuntu22.04-x86_64_v3
[+]  qhjiz57		      ^expat@2.6.2%gcc@11.4.0+libbsd build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  ca45y6k			  ^libbsd@0.12.1%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  evfudm6			      ^libmd@1.0.4%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  eux6e6v		      ^gettext@0.22.5%gcc@11.4.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  wx4xfdn			  ^tar@1.34%gcc@11.4.0 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3
[+]  gk55zt7			      ^pigz@2.8%gcc@11.4.0 build_system=makefile arch=linux-ubuntu22.04-x86_64_v3
[+]  ew3aaos			      ^zstd@1.5.6%gcc@11.4.0+programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  dcinbzl		      ^libffi@3.4.6%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qwi6aof		      ^libxcrypt@4.4.35%gcc@11.4.0~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3
[+]  cb6x34k		      ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3
[+]  ejzddmp		      ^sqlite@3.43.2%gcc@11.4.0+column_metadata+dynamic_extensions+fts~functions+rtree build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  xshts7x		      ^util-linux-uuid@2.38.1%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  udkgdwb	  ^openblas@0.3.26%gcc@11.4.0~bignuma~consistent_fpcsr+dynamic_dispatch+fortran~ilp64+locking+pic+shared build_system=makefile symbol_suffix=none threads=none arch=linux-ubuntu22.04-x86_64_v3
[+]  uliw6sp	      ^perl@5.38.0%gcc@11.4.0+cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3
[+]  br27jq6		  ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3
[+]  qmy6dpi		  ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  ohbrdtp		  ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

==> Updating view at /home/spack/spack/var/spack/environments/myproject/.spack-env/view

All the specs are now concrete and ready to be installed with mpich as the MPI implementation.

Re-concretization is sometimes also necessary when creating an environment incrementally with unification enabled. Spack makes sure that already concretized specs in the environment are not modified when adding something new.

Adding and installing specs one by one leads to greedy concretization. When you first install python in an environment, Spack will pick a recent version for it. If you then add py-numpy, it may be in conflict with the python version already installed, and fail to concretize:

$ spack env activate --temp
==> Created and activated temporary environment in /tmp/spack-mvo6tyn8
$ spack install --add python
==> Concretized python
[+]  2esnie5  python@3.11.7%gcc@11.4.0+bz2+crypt+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tkinter+uuid+zlib build_system=generic patches=13fa8bf,b0615b2,ebdca64,f2fd060 arch=linux-ubuntu22.04-x86_64_v3
[+]  qmy6dpi	  ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  mhzfdlk	      ^diffutils@3.10%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qhjiz57	  ^expat@2.6.2%gcc@11.4.0+libbsd build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  ca45y6k	      ^libbsd@0.12.1%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  evfudm6		  ^libmd@1.0.4%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  ohbrdtp	  ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  eux6e6v	  ^gettext@0.22.5%gcc@11.4.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  jv5es2y	      ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  wx4xfdn	      ^tar@1.34%gcc@11.4.0 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3
[+]  gk55zt7		  ^pigz@2.8%gcc@11.4.0 build_system=makefile arch=linux-ubuntu22.04-x86_64_v3
[+]  ew3aaos		  ^zstd@1.5.6%gcc@11.4.0+programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	  ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  dcinbzl	  ^libffi@3.4.6%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qwi6aof	  ^libxcrypt@4.4.35%gcc@11.4.0~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3
[+]  uliw6sp	      ^perl@5.38.0%gcc@11.4.0+cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3
[+]  br27jq6		  ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3
[+]  gk4xs2i	  ^ncurses@6.5%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools patches=7a351bc arch=linux-ubuntu22.04-x86_64_v3
[+]  vunusyx	  ^openssl@3.3.0%gcc@11.4.0~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3
[+]  yw5x67u	      ^ca-certificates-mozilla@2023-05-30%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  h3x3l7s	  ^pkgconf@2.2.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  cb6x34k	  ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3
[+]  ejzddmp	  ^sqlite@3.43.2%gcc@11.4.0+column_metadata+dynamic_extensions+fts~functions+rtree build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  xshts7x	  ^util-linux-uuid@2.38.1%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  syttnnt	  ^xz@5.4.6%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  xqtp62n	  ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

[+] /usr (external glibc-2.35-a7drdl4tlx4bu3mzhor75pskvd3pdot6)
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gcc-runtime-11.4.0-f47qm6qeplqyahc4zhfpfdnf5mo6gxvd
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libxcrypt-4.4.35-qwi6aof3wwuahmefzsrnvhristv2zglh
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libmd-1.0.4-evfudm6c3pczs4mtbpzogrozhvxrtffa
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/bzip2-1.0.8-qmy6dpipkzgotxrxqwxlnfsj5vbzkbcc
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/ncurses-6.5-gk4xs2idegfiwoyaikamyhxkjrruxtxa
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libffi-3.4.6-dcinbzl32tc7qe73qoew4eulurpzvkig
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/xz-5.4.6-syttnntihi6n463mupmgl5e7kp5izxkz
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/util-linux-uuid-2.38.1-xshts7x2hjr7km6cj4zr5rpxn75tmwgp
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/zlib-ng-2.1.6-xqtp62nft6pt5slbdljucwnkl5fxd6x4
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/zstd-1.5.6-ew3aaosbmf3ts2ylqgi4c6enfmf3m5dr
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libbsd-0.12.1-ca45y6kawcnoscyta2cacbrqsmhwhz4l
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/readline-8.2-cb6x34ku73pjh3f4t7rmpthnxuumw25x
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pigz-2.8-gk55zt73c5ekv3iogqn4lo4r66tuzv5z
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libxml2-2.10.3-jv5es2yg6on55zdsb5xyvvg7xvqh6h4e
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openssl-3.3.0-vunusyxizia47xitgoyd7ck73s3gppij
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/expat-2.6.2-qhjiz57tyjy7x6hszwgmj2yxxl36ejku
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/sqlite-3.43.2-ejzddmpttxpjnxftj7elafkyrzrfihna
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gdbm-1.23-ohbrdtphnhbycgd6p3btrxzjbtkwiqn6
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/tar-1.34-wx4xfdnr4uzmlkbzpeuizbduh4e5klhj
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gettext-0.22.5-eux6e6vvrk7uz4tx3vmjkyonhnvhseeu
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/python-3.11.7-2esnie54t6wca6pwuuhrmuc4o5nihj5o
==> Updating view at /tmp/spack-tmvt2n7c/.spack-env/view
$ spack install --add py-numpy@1.20 2>&1 | tail -n1
    internal_error("version weights must exist and be unique"). Couldn't concretize without changing the existing environment. If you are ok with changing it, try `spack concretize --force`. You could consider setting `concretizer:unify` to `when_possible` or `false` to allow multiple versions of some packages.

The solution is to re-concretize the environment as a whole, which causes python to downgrade to a version compatible with py-numpy:

$ spack add py-numpy@1.20
==> Adding py-numpy@1.20 to environment /tmp/spack-tmvt2n7c
$ spack concretize -f
==> Concretized py-numpy@1.20
 -   sj4nmgo  py-numpy@1.20.3%gcc@11.4.0 build_system=python_pip patches=802970a,873745d arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  udkgdwb	  ^openblas@0.3.26%gcc@11.4.0~bignuma~consistent_fpcsr+dynamic_dispatch+fortran~ilp64+locking+pic+shared build_system=makefile symbol_suffix=none threads=none arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	      ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  uliw6sp	      ^perl@5.38.0%gcc@11.4.0+cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3
[+]  br27jq6		  ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3
 -   gaz7jql	  ^py-cython@0.29.36%gcc@11.4.0 build_system=python_pip patches=c4369ad arch=linux-ubuntu22.04-x86_64_v3
 -   giqt2js	  ^py-pip@23.1.2%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   jusaqeq	  ^py-setuptools@59.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   w45cpzi	  ^py-wheel@0.41.2%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
 -   ywxxmpw	  ^python@3.9.11%gcc@11.4.0+bz2+crypt+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tkinter+uuid+zlib build_system=generic patches=0d98e93,4c24573,ebdca64,f2fd060 arch=linux-ubuntu22.04-x86_64_v3
[+]  qmy6dpi	      ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  mhzfdlk		  ^diffutils@3.10%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qhjiz57	      ^expat@2.6.2%gcc@11.4.0+libbsd build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  ca45y6k		  ^libbsd@0.12.1%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  evfudm6		      ^libmd@1.0.4%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  ohbrdtp	      ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  eux6e6v	      ^gettext@0.22.5%gcc@11.4.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  jv5es2y		  ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  wx4xfdn		  ^tar@1.34%gcc@11.4.0 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3
[+]  gk55zt7		      ^pigz@2.8%gcc@11.4.0 build_system=makefile arch=linux-ubuntu22.04-x86_64_v3
[+]  ew3aaos		      ^zstd@1.5.6%gcc@11.4.0+programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  dcinbzl	      ^libffi@3.4.6%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qwi6aof	      ^libxcrypt@4.4.35%gcc@11.4.0~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3
[+]  gk4xs2i	      ^ncurses@6.5%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools patches=7a351bc arch=linux-ubuntu22.04-x86_64_v3
[+]  vunusyx	      ^openssl@3.3.0%gcc@11.4.0~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3
[+]  yw5x67u		  ^ca-certificates-mozilla@2023-05-30%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  h3x3l7s	      ^pkgconf@2.2.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  cb6x34k	      ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3
[+]  ejzddmp	      ^sqlite@3.43.2%gcc@11.4.0+column_metadata+dynamic_extensions+fts~functions+rtree build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  xshts7x	      ^util-linux-uuid@2.38.1%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  syttnnt	      ^xz@5.4.6%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  xqtp62n	      ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
 -   sneneuw	  ^python-venv@1.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3

==> Concretized python
 -   ywxxmpw  python@3.9.11%gcc@11.4.0+bz2+crypt+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tkinter+uuid+zlib build_system=generic patches=0d98e93,4c24573,ebdca64,f2fd060 arch=linux-ubuntu22.04-x86_64_v3
[+]  qmy6dpi	  ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  mhzfdlk	      ^diffutils@3.10%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qhjiz57	  ^expat@2.6.2%gcc@11.4.0+libbsd build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  ca45y6k	      ^libbsd@0.12.1%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  evfudm6		  ^libmd@1.0.4%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  ohbrdtp	  ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  eux6e6v	  ^gettext@0.22.5%gcc@11.4.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  jv5es2y	      ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  wx4xfdn	      ^tar@1.34%gcc@11.4.0 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3
[+]  gk55zt7		  ^pigz@2.8%gcc@11.4.0 build_system=makefile arch=linux-ubuntu22.04-x86_64_v3
[+]  ew3aaos		  ^zstd@1.5.6%gcc@11.4.0+programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	  ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  dcinbzl	  ^libffi@3.4.6%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qwi6aof	  ^libxcrypt@4.4.35%gcc@11.4.0~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3
[+]  uliw6sp	      ^perl@5.38.0%gcc@11.4.0+cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3
[+]  br27jq6		  ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3
[+]  gk4xs2i	  ^ncurses@6.5%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools patches=7a351bc arch=linux-ubuntu22.04-x86_64_v3
[+]  vunusyx	  ^openssl@3.3.0%gcc@11.4.0~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3
[+]  yw5x67u	      ^ca-certificates-mozilla@2023-05-30%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  h3x3l7s	  ^pkgconf@2.2.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  cb6x34k	  ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3
[+]  ejzddmp	  ^sqlite@3.43.2%gcc@11.4.0+column_metadata+dynamic_extensions+fts~functions+rtree build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  xshts7x	  ^util-linux-uuid@2.38.1%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  syttnnt	  ^xz@5.4.6%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  xqtp62n	  ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

==> Updating view at /tmp/spack-tmvt2n7c/.spack-env/view

Building in environments

Activated environments allow you to invoke any programs installed in them as if they were installed on the system.

Suppose you want to compile some MPI programs. We have an MPI implementation installed in our myproject2 environment, so mpicc is available in our path. We can confirm this using which:

$ spack env activate myproject2
$ spack env status
==> In environment myproject2
$ which mpicc
/home/spack/spack/var/spack/environments/myproject2/.spack-env/view/bin/mpicc

As mentioned before, activating the environment sets a number of environment variables. That includes variables like PATH, MANPATH, and CMAKE_PREFIX_PATH, which allows you to easily find package executables and libraries installed in the environment.

Let’s look specifically at path-related environment variables using env | grep PATH:

$ env | grep PATH=
PKG_CONFIG_PATH=/home/spack/spack/var/spack/environments/myproject2/.spack-env/view/lib/pkgconfig:/home/spack/spack/var/spack/environments/myproject2/.spack-env/view/lib64/pkgconfig:/usr/share/pkgconfig:/home/spack/spack/var/spack/environments/myproject2/.spack-env/view/share/pkgconfig:.
ACLOCAL_PATH=/home/spack/spack/var/spack/environments/myproject2/.spack-env/view/share/aclocal:.
PATH=/home/spack/spack/var/spack/environments/myproject2/.spack-env/view/bin:/home/spack/spack/bin:/opt/spack/view/bin:/root/spack/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MANPATH=/home/spack/spack/var/spack/environments/myproject2/.spack-env/view/share/man:/home/spack/spack/var/spack/environments/myproject2/.spack-env/view/man:/usr/share/man:.:
CMAKE_PREFIX_PATH=/home/spack/spack/var/spack/environments/myproject2/.spack-env/view:.

We can demonstrate use of these environment settings by building a really simple MPI program.

Let’s create a program called mpi-hello.c that contains the following code:

#include <stdio.h>
#include <mpi.h>
#include <zlib.h>

int main(int argc, char **argv) {
  int rank;
  MPI_Init(&argc, &argv);

  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  printf("Hello world from rank %d\n", rank);

  if (rank == 0) {
    printf("zlib version: %s\n", ZLIB_VERSION);
    printf("zlib-ng version: %s\n", ZLIBNG_VERSION);
  }

  MPI_Finalize();
}

This program includes headers from mpi and zlib. It also prints out a message from each MPI rank and the version of zlib.

Let’s build and run our program:

$ mpicc ./mpi-hello.c -I$(spack location -i zlib-ng)/include
$ mpirun -n 2 ./a.out
Hello world from rank 0
zlib version: 1.3.0.zlib-ng
zlib-ng version: 2.1.6
Hello world from rank 1

Notice that we only needed to pass the include path to the compiler. We also see that Hello world is output for each of the ranks and the version of zlib used to build the program is printed.

We can confirm the version of zlib used to build the program is in our environment using spack find:

$ spack find zlib-ng
==> In environment myproject2
==> 1 root specs
[+] scr

==> Installed packages
-- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
zlib-ng@2.1.6
==> 1 installed package

Note that the reported version does match that of our installation.

Reproducing builds

Environment files can be used to reproduce builds by other users and on other machines.

Environment files

There are two key files tracking the contents of environments: spack.yaml and spack.lock. The spack.yaml file holds the environment configuration that we previously edited through spack config edit. The spack.lock file is automatically generated during concretization.

The two files represent two fundamental concepts:

  • spack.yaml: abstract specs and configuration to install; and

  • spack.lock: all fully concrete specs.

These files are intended to be used by developers and administrators to manage the environments in a reproducible way. We will cover their re-use later.

Note

Both environment files can be versioned in repositories, shared, and used to install the same set of software by different users and on other machines.

Managed versus independent environments

Environments are either Spack-managed or independent. Both types of environments are defined by their environment files. So far we have only created managed environments. This section describes their differences.

Managed environments are created using spack env create <name>. They are automatically created in the var/spack/environments subdirectory and can be referenced by their names.

Independent environments can be created in one of two ways. First, the Spack environment file(s) can be placed in any directory (other than var/spack/environments). Alternatively, you can use spack env create -d <directory> to specify the directory (<directory>) in which the files should reside. Independent environments are not named.

Reviewing a managed environment

We created the myproject environment earlier using spack env create myproject so let’s mainly focus on its environment files in this section.

Earlier, when we changed the environment’s configuration using spack config edit, we were actually editing its spack.yaml file. We can move to the directory containing the file using spack cd:

$ spack cd -e myproject
$ pwd
/home/spack/spack/var/spack/environments/myproject
$ ls
spack.lock  spack.yaml

Notice that myproject is a subdirectory of var/spack/environments within the Spack installation making it a managed environment. Consequently, it can be referenced by name. It will also show up when running spack env list:

$ spack env list
==> 2 environments
    myproject  myproject2

which indicates the active environment by highlighting it in green.

We can also see from the listing above that the current environment directory contains both of the environment files: spack.yaml and spack.lock. This is because spack.lock was generated when we concretized the environment.

If we cat the spack.yaml file, we’ll see the same specs and view options previously shown by spack config get:

$ cat spack.yaml
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
  # add package specs to the `specs` list
  specs:
  - tcl
  - trilinos
  view: true
  concretizer:
    unify: true
  packages:
    mpi:
      require: [mpich]

Creating an independent environment

Environments do not have to be created in or managed by a Spack instance. Rather, their environment files can be placed in any directory. This feature can be quite helpful for use cases such as environment-based software releases and CI/CD.

Let’s create an independent environment from scratch for a simple project:

$ cd
$ mkdir code
$ cd code
$ spack env create -d .
==> Created independent environment in: /home/spack/code
==> Activate with: spack env activate .

Notice that the command shows Spack created the environment, updated the view, and printed the command needed to activate it. As we can see in the activation command, since the environment is independent, it must be referenced by its directory path.

Let’s see what really happened with this command by listing the directory contents and looking at the configuration file:

$ ls
spack.yaml
$ cat spack.yaml
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
  # add package specs to the `specs` list
  specs: []
  view: true
  concretizer:
    unify: true

Notice that Spack created a spack.yaml file in the code directory. Also note that the configuration file has an empty spec list (i.e., []). That list is intended to contain only the root specs of the environment.

We can confirm that it is not a managed environment by running spack env list:

$ spack env list
==> 2 environments
    myproject  myproject2

and noting that the path does not appear in the output.

Now let’s add some specs to the environment. Suppose your project depends on trilinos and openmpi. Add these packages to the spec list using your favorite text editor. The dash syntax for a YAML list is used in our example. Your package should now contain the following entries:

# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
  # add package specs to the `specs` list
  specs:
  - trilinos
  - openmpi
  view: true
  concretizer:
    unify: true

Now activate the environment and install the packages:

$ spack env activate .
$ spack install
==> Concretized openmpi
[+]  kzonshw  openmpi@5.0.3%gcc@11.4.0~atomics~cuda~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix~romio+rsh~static+vt+wrapper-rpath build_system=autotools fabrics=none romio-filesystem=none schedulers=none arch=linux-ubuntu22.04-x86_64_v3
[+]  ljmgup2	  ^autoconf@2.72%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  7d6p4sf	      ^m4@1.4.19%gcc@11.4.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu22.04-x86_64_v3
[+]  mhzfdlk		  ^diffutils@3.10%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  jwy3fyz		  ^libsigsegv@2.14%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  p742yhm	  ^automake@1.16.5%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	  ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  ujih6ik	  ^hwloc@2.9.1%gcc@11.4.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~oneapi-level-zero~opencl+pci~rocm build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  esgx75j	      ^libpciaccess@0.17%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  egkyddp		  ^util-macros@1.19.3%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  jv5es2y	      ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  syttnnt		  ^xz@5.4.6%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  gk4xs2i	      ^ncurses@6.5%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools patches=7a351bc arch=linux-ubuntu22.04-x86_64_v3
[+]  uv2twd5	  ^libevent@2.1.12%gcc@11.4.0+openssl build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  vunusyx	      ^openssl@3.3.0%gcc@11.4.0~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3
[+]  yw5x67u		  ^ca-certificates-mozilla@2023-05-30%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  lop7htu	  ^libtool@2.4.7%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  v4yzc2w	      ^findutils@4.9.0%gcc@11.4.0 build_system=autotools patches=440b954 arch=linux-ubuntu22.04-x86_64_v3
[+]  oece2d6	  ^numactl@2.0.14%gcc@11.4.0 build_system=autotools patches=4e1d78c,62fc8a8,ff37630 arch=linux-ubuntu22.04-x86_64_v3
[+]  iiuja4v	  ^openssh@9.7p1%gcc@11.4.0+gssapi build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  kqbte2e	      ^krb5@1.20.1%gcc@11.4.0+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  6wy33u6		  ^bison@3.8.2%gcc@11.4.0~color build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  eux6e6v		  ^gettext@0.22.5%gcc@11.4.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  wx4xfdn		      ^tar@1.34%gcc@11.4.0 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3
[+]  gk55zt7			  ^pigz@2.8%gcc@11.4.0 build_system=makefile arch=linux-ubuntu22.04-x86_64_v3
[+]  ew3aaos			  ^zstd@1.5.6%gcc@11.4.0+programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  swglgxe	      ^libedit@3.1-20230828%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qwi6aof	      ^libxcrypt@4.4.35%gcc@11.4.0~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3
[+]  uliw6sp	  ^perl@5.38.0%gcc@11.4.0+cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3
[+]  br27jq6	      ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3
[+]  qmy6dpi	      ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  ohbrdtp	      ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  cb6x34k		  ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3
[+]  h3x3l7s	  ^pkgconf@2.2.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  bzewb3i	  ^pmix@5.0.1%gcc@11.4.0~docs+pmi_backwards_compatibility~python~restful build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  xqtp62n	  ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

==> Concretized trilinos
[+]  jlxw43j  trilinos@15.1.1%gcc@11.4.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~pamgen~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~test~thyra+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_system=cmake build_type=Release cxxstd=17 generator=make gotype=long_long arch=linux-ubuntu22.04-x86_64_v3
[+]  fkjttm2	  ^cmake@3.27.9%gcc@11.4.0~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64_v3
[+]  cc6xd2h	      ^curl@8.7.1%gcc@11.4.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3
[+]  pn6bnmh		  ^nghttp2@1.57.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  mhzfdlk		      ^diffutils@3.10%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  vunusyx		  ^openssl@3.3.0%gcc@11.4.0~docs+shared build_system=generic certs=mozilla arch=linux-ubuntu22.04-x86_64_v3
[+]  yw5x67u		      ^ca-certificates-mozilla@2023-05-30%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  gk4xs2i	      ^ncurses@6.5%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools patches=7a351bc arch=linux-ubuntu22.04-x86_64_v3
[+]  xqtp62n	      ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  f47qm6q	  ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[e]  a7drdl4	  ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qfrotcc	  ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  ujih6ik	  ^hwloc@2.9.1%gcc@11.4.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~oneapi-level-zero~opencl+pci~rocm build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  esgx75j	      ^libpciaccess@0.17%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  egkyddp		  ^util-macros@1.19.3%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  jv5es2y	      ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  syttnnt		  ^xz@5.4.6%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  h3x3l7s	      ^pkgconf@2.2.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  4blypc6	  ^kokkos@4.2.01%gcc@11.4.0~aggressive_vectorization~compiler_warnings~cuda~debug~debug_bounds_check~debug_dualview_modify_check~deprecated_code~examples~hpx~hpx_async_dispatch~hwloc~ipo~memkind~numactl~openmp~openmptarget~pic~rocm+serial+shared~sycl~tests~threads~tuning~wrapper build_system=cmake build_type=Release cxxstd=17 generator=make intel_gpu_arch=none arch=linux-ubuntu22.04-x86_64_v3
[+]  udkgdwb	  ^openblas@0.3.26%gcc@11.4.0~bignuma~consistent_fpcsr+dynamic_dispatch+fortran~ilp64+locking+pic+shared build_system=makefile symbol_suffix=none threads=none arch=linux-ubuntu22.04-x86_64_v3
[+]  uliw6sp	      ^perl@5.38.0%gcc@11.4.0+cpanm+opcode+open+shared+threads build_system=generic patches=714e4d1 arch=linux-ubuntu22.04-x86_64_v3
[+]  br27jq6		  ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu22.04-x86_64_v3
[+]  qmy6dpi		  ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+]  ohbrdtp		  ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  cb6x34k		      ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu22.04-x86_64_v3
[+]  kzonshw	  ^openmpi@5.0.3%gcc@11.4.0~atomics~cuda~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix~romio+rsh~static+vt+wrapper-rpath build_system=autotools fabrics=none romio-filesystem=none schedulers=none arch=linux-ubuntu22.04-x86_64_v3
[+]  ljmgup2	      ^autoconf@2.72%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  7d6p4sf		  ^m4@1.4.19%gcc@11.4.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu22.04-x86_64_v3
[+]  jwy3fyz		      ^libsigsegv@2.14%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  p742yhm	      ^automake@1.16.5%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  uv2twd5	      ^libevent@2.1.12%gcc@11.4.0+openssl build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  lop7htu	      ^libtool@2.4.7%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  v4yzc2w		  ^findutils@4.9.0%gcc@11.4.0 build_system=autotools patches=440b954 arch=linux-ubuntu22.04-x86_64_v3
[+]  oece2d6	      ^numactl@2.0.14%gcc@11.4.0 build_system=autotools patches=4e1d78c,62fc8a8,ff37630 arch=linux-ubuntu22.04-x86_64_v3
[+]  iiuja4v	      ^openssh@9.7p1%gcc@11.4.0+gssapi build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  kqbte2e		  ^krb5@1.20.1%gcc@11.4.0+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  6wy33u6		      ^bison@3.8.2%gcc@11.4.0~color build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  eux6e6v		      ^gettext@0.22.5%gcc@11.4.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  wx4xfdn			  ^tar@1.34%gcc@11.4.0 build_system=autotools zip=pigz arch=linux-ubuntu22.04-x86_64_v3
[+]  gk55zt7			      ^pigz@2.8%gcc@11.4.0 build_system=makefile arch=linux-ubuntu22.04-x86_64_v3
[+]  ew3aaos			      ^zstd@1.5.6%gcc@11.4.0+programs build_system=makefile compression=none libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+]  swglgxe		  ^libedit@3.1-20230828%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+]  qwi6aof		  ^libxcrypt@4.4.35%gcc@11.4.0~obsolete_api build_system=autotools patches=4885da3 arch=linux-ubuntu22.04-x86_64_v3
[+]  bzewb3i	      ^pmix@5.0.1%gcc@11.4.0~docs+pmi_backwards_compatibility~python~restful build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

[+] /usr (external glibc-2.35-a7drdl4tlx4bu3mzhor75pskvd3pdot6)
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gcc-runtime-11.4.0-f47qm6qeplqyahc4zhfpfdnf5mo6gxvd
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/zlib-ng-2.1.6-xqtp62nft6pt5slbdljucwnkl5fxd6x4
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libxcrypt-4.4.35-qwi6aof3wwuahmefzsrnvhristv2zglh
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openblas-0.3.26-udkgdwb572f3cpn2el5noyuwoe6k5ujp
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/kokkos-4.2.01-4blypc6xygkwlzcvexbqylr63g65tpqk
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/ncurses-6.5-gk4xs2idegfiwoyaikamyhxkjrruxtxa
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/xz-5.4.6-syttnntihi6n463mupmgl5e7kp5izxkz
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libpciaccess-0.17-esgx75jgr6iu4dkcw566yvz4tmx33ljz
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/numactl-2.0.14-oece2d6cta5zgxcbziturcqsugvbehjg
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/bzip2-1.0.8-qmy6dpipkzgotxrxqwxlnfsj5vbzkbcc
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/zstd-1.5.6-ew3aaosbmf3ts2ylqgi4c6enfmf3m5dr
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openssl-3.3.0-vunusyxizia47xitgoyd7ck73s3gppij
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pigz-2.8-gk55zt73c5ekv3iogqn4lo4r66tuzv5z
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libedit-3.1-20230828-swglgxeckeajkjp4b7d66fbsyn6hjsdh
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libxml2-2.10.3-jv5es2yg6on55zdsb5xyvvg7xvqh6h4e
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/libevent-2.1.12-uv2twd5kir57zlvu4ntf3cffa2lad47g
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/tar-1.34-wx4xfdnr4uzmlkbzpeuizbduh4e5klhj
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/hwloc-2.9.1-ujih6ikevwjglzswfu4wf7eimac2pvsh
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/gettext-0.22.5-eux6e6vvrk7uz4tx3vmjkyonhnvhseeu
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/pmix-5.0.1-bzewb3i2g5m4lv2jq3prq6nqvzrpdilw
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/krb5-1.20.1-kqbte2e4fgnkv2m2zwcagwgkiluqlkdn
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openssh-9.7p1-iiuja4vvxdkrnzipyeyvzpxiqln2o2sd
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/openmpi-5.0.3-kzonshw6wgio6do6gj5vk5kkhoxt2kal
[+] /home/spack/spack/opt/spack/linux-ubuntu22.04-x86_64_v3/gcc-11.4.0/trilinos-15.1.1-jlxw43juyunkrzjxsmzsoocykongu57a
==> Updating view at /home/spack/code/.spack-env/view

Notice that Spack concretized the specs before installing them and their dependencies. It also updated the environment’s view. Since we already installed all these packages outside of the environment, their links were simply added to it.

Updating an installed environment

Spack supports tweaking an environment even after the initial specs are installed. You are free to add and remove specs just as you would outside of the environment using the command line interface as before.

For example, let’s add hdf5 and look at our file:

$ spack add hdf5@5.5.1
==> Adding hdf5@5.5.1 to environment /home/spack/code
$ cat spack.yaml
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
  # add package specs to the `specs` list
  specs:
  - trilinos
  - openmpi
  - hdf5@5.5.1
  view: true
  concretizer:
    unify: true

Notice that spack add added the package to our active environment and it appears in the configuration file’s spec list.

Note

You’ll need to run spack install to install added packages in your environment because spack add only adds it to the configuration.

Now use spack remove to remove the spec from the configuration:

$ spack remove hdf5
==> hdf5 has been removed from /home/spack/code/spack.yaml
$ cat spack.yaml
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
  # add package specs to the `specs` list
  specs:
  - trilinos
  - openmpi
  view: true
  concretizer:
    unify: true

and we see that the spec was removed from the spec list of our environment.

Note

You can also edit the spack.yaml file directly instead of using the spack add and spack remove commands.

Reviewing spack.lock

Now let’s turn our attention from the abstract to the concrete.

Our focus so far has been on the abstract environment configuration represented by the spack.yaml file. Once that file is concretized, Spack generates a corresponding spack.lock file representing the full concretized state of the environment.

This file is intended to be a machine-readable representation of the information needed to reproduce the build of an environment. As such, it is written in json, which is less readable than yaml.

Let’s look at the top 30 lines of our current environment:

$ jq < spack.lock | head -30
{
  "_meta": {
    "file-type": "spack-lockfile",
    "lockfile-version": 5,
    "specfile-version": 4
  },
  "spack": {
    "version": "0.22.0",
    "type": "git",
    "commit": "5fe93fee1eec46a0750bd340198bffcb92ff9eec"
  },
  "roots": [
    {
      "hash": "kzonshw6wgio6do6gj5vk5kkhoxt2kal",
      "spec": "openmpi"
    },
    {
      "hash": "jlxw43juyunkrzjxsmzsoocykongu57a",
      "spec": "trilinos"
    }
  ],
  "concrete_specs": {
    "kzonshw6wgio6do6gj5vk5kkhoxt2kal": {
      "name": "openmpi",
      "version": "5.0.3",
      "arch": {
	"platform": "linux",
	"platform_os": "ubuntu22.04",
	"target": "x86_64_v3"
      },

While it is still readable, it consists of over 1900 lines of information representing the actual configurations for each of the environment’s packages.

Reproducing an environment

Now that we’ve described the contents of the environment files we can discuss how they can be used to reproduce environments. You may want to do this yourself on a different machine, or use an environment built by someone else. The process is the same in either case.

You can recreate an environment by passing either of the environment files to spack env create. The file you choose depends on whether you want to approximate the build using the abstract specs or an exact build based on the concrete specs.

Using spack.yaml

An approximate build is created using the spack.yaml file. This approach is relevant when we want to build the same specs on a new platform, for example. It allows you to reproduce the environment by preserving the abstract requirements in the file. However, the software may actually build differently in part because the concretizer may choose different dependencies.

Let’s use spack env create to create an abstract environment from the file that we’ll call abstract:

$ spack env create abstract spack.yaml
==> Created environment abstract in: /home/spack/spack/var/spack/environments/abstract
==> Activate with: spack env activate abstract

Here we see that Spack created a managed environment with the name we provided.

And, since it is a newly created environment, it does not have any installed specs yet as we can see from calling spack find after activating the environment:

$ spack env activate abstract
$ spack find
==> In environment abstract
==> 2 root specs
 -  openmpi   -  trilinos

==> 0 installed packages

Notice that we have the same root specs as were listed in the spack.yaml file.

Using spack.lock

The spack.lock file is used for an exact reproduction of the original build. It can replicate the build because it contains the information for all the decisions made during concretization.

Now let’s create a concrete environment, called concrete, from the file:

$ spack env create concrete spack.lock
==> Created environment concrete in: /home/spack/spack/var/spack/environments/concrete
==> Activate with: spack env activate concrete
==> Updating view at /home/spack/spack/var/spack/environments/concrete/.spack-env/view

Here we see that Spack again created a managed environment with the provided name.

Since we created the environment from our spack.lock file, not only do we get the same root specs, all of the packages are installed in the environment as we can see from calling spack find after activating the environment:

$ spack env activate concrete
$ spack find
==> In environment concrete
==> 2 root specs
[+] openmpi  [+] trilinos

==> Installed packages
-- linux-ubuntu22.04-x86_64_v3 / gcc@11.4.0 ---------------------
autoconf@2.72			    hwloc@2.9.1 	  openmpi@5.0.3
automake@1.16.5 		    kokkos@4.2.01	  openssh@9.7p1
berkeley-db@18.1.40		    krb5@1.20.1 	  openssl@3.3.0
bison@3.8.2			    libedit@3.1-20230828  perl@5.38.0
bzip2@1.0.8			    libevent@2.1.12	  pigz@2.8
ca-certificates-mozilla@2023-05-30  libpciaccess@0.17	  pkgconf@2.2.0
cmake@3.27.9			    libsigsegv@2.14	  pmix@5.0.1
curl@8.7.1			    libtool@2.4.7	  readline@8.2
diffutils@3.10			    libxcrypt@4.4.35	  tar@1.34
findutils@4.9.0 		    libxml2@2.10.3	  trilinos@15.1.1
gcc-runtime@11.4.0		    m4@1.4.19		  util-macros@1.19.3
gdbm@1.23			    ncurses@6.5 	  xz@5.4.6
gettext@0.22.5			    nghttp2@1.57.0	  zlib-ng@2.1.6
glibc@2.35			    numactl@2.0.14	  zstd@1.5.6
gmake@4.4.1			    openblas@0.3.26
==> 44 installed packages

Note

Use of spack.lock to reproduce a build (currently) requires you to be on the same type of machine.

More information

This tutorial only scratches the surface of environments and what they can do. For more information, take a look at the Spack resources below.

Setting up and building environments

Using environments

Finding examples of environments