Skip to content

Commit 161c554

Browse files
Merge branch 'JCSDA:develop' into develop
2 parents 91da14b + c208ff8 commit 161c554

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed

doc/source/MaintainersSection.rst

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ For certain limited use cases, we need to provide ``mysql`` through spack-stack.
9090
.. _MaintainersSection_Texlive:
9191

9292
------------------------------
93-
Texlive (TeX/LaTeX)
93+
Texlive (TeX/LaTeX; optional)
9494
------------------------------
9595

9696
Building ``texlive`` isn't straightforward as it has many dependencies. Since it is only used to generated documentation for ``spack-stack`` (and other projects), i.e. not to compile any code, it makes no sense to build it with ``spack``. We therefore require ``texlive`` or any other compatible TeX/LaTeX distribution as an external package.
@@ -324,7 +324,7 @@ The newly created local mirror should be listed at the top, which means that spa
324324
Spack mirrors for air-gapped systems
325325
------------------------------------
326326

327-
The procedure is similar to using spack mirrors for local reuse, but a few additional steps are needed in between.
327+
The procedure for creating source caches is similar to using spack mirrors for local reuse, but a few additional steps are needed in between. The steps to create a mirror for bootstrapping spack on an air-gapped system are described in the next section.
328328

329329
1. On the air-gapped system: Create an environment as usual, activate it and run the concretization step (``spack concretize``), but do not start the installation yet.
330330

@@ -358,6 +358,43 @@ The procedure is similar to using spack mirrors for local reuse, but a few addit
358358
359359
7. On the air-gapped system: Proceed with the installation as usual.
360360

361+
----------------------------------------
362+
Bootstrap mirrors for air-gapped systems
363+
----------------------------------------
364+
365+
To use spack on an air-gapped system, the first step is to create a mirror that allows spack to bootstrap from. The logic is similar to that for creating source caches for spack installations. On a system with access to the internet, a series of commands is run to create a bootstrap mirror. The bootstrap mirror is then copied over to the air-gapped system and registered so that spack can use it.
366+
367+
1. On the system with access to the internet, and using the same version of spack-stack (and its spack submodule) as on the air-gapped target system:
368+
369+
.. code-block:: console
370+
371+
# After running "source setup.sh" in the spack-stack top-level directory
372+
373+
# Create bootstrap mirror
374+
spack bootstrap mirror --binary-packages ./bootstrap-mirror
375+
376+
2. Transfer ``./bootstrap-mirror`` to the air-gapped system, preferably to the same location inside the spack-stack top-level directory (i.e. ``${SPACK_STACK_DIR}/bootstrap-mirror/``).
377+
378+
3. On the air-gapped system, run the following series of commands:
379+
380+
.. code-block:: console
381+
382+
# After running "source setup.sh" in the spack-stack top-level directory
383+
384+
# Register bootstrap mirror
385+
spack bootstrap add --trust local-sources /absolute/path/to/spack-stack/bootstrap-mirror/metadata/sources
386+
spack bootstrap add --trust local-binaries /absolute/path/to/spack-stack/bootstrap-mirror/metadata/sources
387+
388+
# Update the boostrap binary cache index (silent response to this command means success)
389+
spack buildcache update-index /absolute/path/to/spack-stack/bootstrap-mirror/bootstrap_cache
390+
391+
4. Bootstrap spack explicitly before creating environments and check the status. There may be error messages along the way, but as long as the command completes and ``spack bootstrap status`` shows ``PASS`` for both ``Core Functionalities`` and ``Binary packages``, it was successful.
392+
393+
.. code-block:: console
394+
395+
spack bootstrap now
396+
spack bootstrap status
397+
361398
==============================
362399
Testing new packages
363400
==============================

0 commit comments

Comments
 (0)