Add --fresh to docs to actually upgrade spack environments (#34433)

This commit is contained in:
Alec Scott 2022-12-22 03:19:24 -08:00 committed by GitHub
parent 8f3f838763
commit 3279ee7068
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -184,13 +184,48 @@ simply run the following commands:
.. code-block:: console .. code-block:: console
$ spack env activate myenv $ spack env activate myenv
$ spack concretize --force $ spack concretize --fresh --force
$ spack install $ spack install
The ``--force`` flag tells Spack to overwrite its previous concretization The ``--fresh`` flag tells Spack to use the latest version of every package
decisions, allowing you to choose a new version of Python. If any of the new where possible instead of trying to optimize for reuse of existing installed
packages like Bash are already installed, ``spack install`` won't re-install packages.
them, it will keep the symlinks in place.
The ``--force`` flag in addition tells Spack to overwrite its previous
concretization decisions, allowing you to choose a new version of Python.
If any of the new packages like Bash are already installed, ``spack install``
won't re-install them, it will keep the symlinks in place.
-----------------------------------
Updating & Cleaning Up Old Packages
-----------------------------------
If you're looking to mimic the behavior of Homebrew, you may also want to
clean up out-of-date packages from your environment after an upgrade. To
upgrade your entire software stack within an environment and clean up old
package versions, simply run the following commands:
.. code-block:: console
$ spack env activate myenv
$ spack mark -i --all
$ spack concretize --fresh --force
$ spack install
$ spack gc
Running ``spack mark -i --all`` tells Spack to mark all of the existing
packages within an environment as "implicitly" installed. This tells
spack's garbage collection system that these packages should be cleaned up.
Don't worry however, this will not remove your entire environment.
Running ``spack install`` will reexamine your spack environment after
a fresh concretization and will re-mark any packages that should remain
installed as "explicitly" installed.
**Note:** if you use multiple spack environments you should re-run ``spack install``
in each of your environments prior to running ``spack gc`` to prevent spack
from uninstalling any shared packages that are no longer required by the
environment you just upgraded.
-------------- --------------
Uninstallation Uninstallation