Merge pull request #530 from mvincerx/mv-swupd-guide

@MCamp859, @castulo , @mvincerx Thanks for all the work on this PR. Merging. If you catch anything new, we can submit a new PR.
This commit is contained in:
Kevin Putnam
2019-06-10 18:17:42 -04:00
committed by GitHub
7 changed files with 19 additions and 78 deletions
+2 -6
View File
@@ -60,12 +60,8 @@ to update.
Update integrity
----------------
:command:`swupd` operates against a published manifest of files for a
particular |CL| version that contains the unique hash of each file. This is
the basis of the :command:`swupd verify` subcommand, which allows a |CL|
system to check for and remediate any discrepancies to system files. As
necessary, :command:`swupd verify` provides a useful way for software
developers to return to a known filesystem state.
This is the basis of the :command:`swupd diagnose` subcommand, which allows a |CL| system to check for any discrepancies to system files. As necessary,
:command:`swupd repair` provides a useful way for software developers to remediate these discrepancies and return to a known filesystem state.
Bundles
=======
@@ -48,7 +48,7 @@ Mount root partition, verify, and fix
sudo mount /dev/sda3 /mnt
#. Verify that you mounted the correct root partition by checking for some
#. Verify that you mounted the correct root partition by checking for some
files commonly found on |CL| systems.
.. code-block:: bash
@@ -60,7 +60,7 @@ Mount root partition, verify, and fix
.. code-block:: bash
sudo swupd verify --fix --picky --path=/mnt
sudo swupd repair --picky --path=/mnt
:ref:`Learn more about how swupd works <swupd-guide>`.
@@ -82,76 +82,24 @@ Build the base container image
swupd bundle-add containers-basic
systemctl start docker
#. Create the directory structure to build the |CL| container.
#. Use `os-install` to download and install the bundles.
.. code-block:: bash
mkdir -p ./custom-clear-linux-container/base/usr/share/clear/bundles
cd custom-clear-linux-container
.. note::
* The directories :file:`custom-clear-linux-container` and
:file:`base` are used for staging. You can rename these directories.
* The directories :file:`/usr/share/clear/bundles` are mandatory and
cannot be renamed.
#. Create the reference files of the minimum required |CL| bundles,
:file:`os-core` and :file:`os-core-update`. The software updater
uses the reference filenames to determine which bundles to download and
install.
.. code-block:: bash
touch ./base/usr/share/clear/bundles/os-core
touch ./base/usr/share/clear/bundles/os-core-update
.. note::
* :file:`os-core` provides the minimal Linux namespace.
* :file:`os-core-update` provides the basic suite for running the |CL|
updater.
#. Optionally, you can include additional bundles with the base image.
#. Identify the desired bundles on the |CL| website's
:ref:`bundles` page or execute the
:command:`swupd bundle-list -a` command.
#. Create reference files for the identified bundles. For example,
to include the :file:`editors` and :file:`network-basic` bundles,
enter the commands:
.. code-block:: bash
touch ./base/usr/share/clear/bundles/editors
touch ./base/usr/share/clear/bundles/network-basic
#. Use `swupd` to download and install the bundles.
.. code-block:: bash
swupd verify --install --path="base" --manifest 17870 \
--url https://cdn.download.clearlinux.org/update \
--statedir "$PWD/swupd-state" --no-boot-update
swupd os-install --url https://cdn.download.clearlinux.org/update --statedir "$PWD"/swupd-state --no-boot-update --version 29790 -B os-core-update,editors,network-basic base
The `swupd` example uses the following flags:
* :command:`verify -install` tells `swupd` to download and install.
* :command:`--path` specifies the root path where the bundles are to be
installed.
* :command:`--manifest` specifies the version of the |CL| bundles.
* :command:`os-install` tells `swupd` to download and install.
* :command:`-V / --version` specifies the version of the |CL| bundles.
* :command:`--url` specifies the URL of the bundles repository.
* :command:`--statedir` specifies the state directory where downloaded bundles
and any state information are stored.
* :command:`--no-boot-update` tells `swupd` to skip updating boot files because
boot files are not required for a container.
For more information on `swupd` flags, enter the :command:`swupd verify -h`
command.
For more information on `swupd` flags, enter the :command:`swupd os-install -h` command.
Example output:
@@ -433,7 +433,7 @@ To test an autospec created package directly on the |CL| development system:
tests.
#. After testing has been completed, the software and any related files must
be identified and deleted. The :command:`swupd verify --picky --fix`
be identified and deleted. The :command:`swupd repair --picky`
command can help restore the state of the :file:`/usr` directory (see
:ref:`swupd <swupd-about>`) however any other files must be cleaned up
manually.
@@ -442,8 +442,7 @@ To test an autospec created package directly on the |CL| development system:
References
**********
Reference the `autospec README`_ for details regarding autospec commands and
options.
Reference the `autospec README`_ for details regarding `autospec` commands and options.
Setup environment to build source
=================================
@@ -187,7 +187,7 @@ on demand.
.. code-block:: bash
sudo swupd update -m <version number>
sudo swupd update --version <version number>
#. Re-enable automatic installs.
@@ -276,7 +276,7 @@ been added to, overwritten, removed, or modified (e.g., permissions).
.. code-block:: bash
sudo swupd verify
sudo swupd diagnose
All directories that are watched by :command:`swupd` are verified according
to the manifest data and hash mismatches are flagged as follows:
@@ -307,7 +307,7 @@ ignore files or directories matching `/usr/lib/python`:
.. code-block:: bash
sudo swupd verify --fix --picky --picky-whitelist=/usr/lib/python
sudo swupd repair --picky --picky-whitelist=/usr/lib/python
Quick Reference
***************
+1 -1
View File
@@ -110,7 +110,7 @@ Troubleshooting
.. code-block:: bash
sudo swupd verify
sudo swupd info
.. _Kata Containers: https://katacontainers.io/
+4 -6
View File
@@ -179,17 +179,15 @@ Install the NVIDIA Drivers
.. code-block:: bash
sudo swupd verify --quick --fix --bundles=lib-opengl
sudo swupd repair --quick --bundles=lib-opengl
.. note::
The NVIDIA software places some files under the :file:`/usr` subdirectory
which are not managed by |CL| and conflict with the |CL| stateless design.
Although a limited version of :command:`swupd verify --fix` is ran above,
other uses of the :command:`swupd verify --fix` command should be avoided
Although a limited version of :command:`swupd repair` is ran above,
other uses of the :command:`swupd repair` command should be avoided
with the proprietary NVIDIA drivers installed.
Updating the NVIDIA Drivers
@@ -200,7 +198,7 @@ The proprietary NVIDIA drivers are installed manually outside of :ref:`swupd
Updating the NVIDIA drivers follows the same steps as initial installation,
however the desktop environment must first be stopped so that the drivers are
not in use.
not in use.
#. Follow the steps in `Download the NVIDIA Drivers for Linux`_ section to get
the latest NVIDIA drivers.