diff --git a/source/clear-linux/guides/maintenance/swupd_guide.rst b/source/clear-linux/guides/maintenance/swupd_guide.rst index 398ea209..dad8f797 100644 --- a/source/clear-linux/guides/maintenance/swupd_guide.rst +++ b/source/clear-linux/guides/maintenance/swupd_guide.rst @@ -15,6 +15,8 @@ tool to install and remove bundles. :local: :depth: 2 +.. _man_swupd: + For a full listing of commands and options please see the man page in |CL| .. code-block:: bash @@ -27,27 +29,103 @@ OS Update and Verification |CL| is designed to promote a regular update cadence. `swupd` helps to make sure that process is simple and secure. -Automatic Updates -================= +OS Info +======= -|CL| updates can be toggled to happen automatically or on demand. Enable -automatic updates like this: +Current OS version and update server info: .. code-block:: bash - sudo swupd autoupdate --enable + swupd info -To disable use the `--disable` flag instead. +.. code-block:: console + Installed version: 23330 + Version URL: https://download.clearlinux.org/update/ + Content URL: https://cdn.download.clearlinux.org/update/ + +Disable Automatic Updates +========================= + +|CL| updates are automatic by default but can be toggled to occur only +on demand. Disable automatic updates: + +.. code-block:: bash + + sudo swupd autoupdate --disable + +To re-enable automatic updates use the `--enable` flag. + +Check for Updates +================= + +.. code-block:: bash + + sudo swupd check-update + +Perform a Manual Update +======================= + +You can update to a specific verion or accept the +latest as the default with no arguments. + +Initiate a manual update: + +.. code-block:: bash + + sudo swupd update -m 23330 + +Output from a successful update: + +.. code-block:: console + + Update started. + Version on server (23330) is not newer than system version (23330) + Update complete. System already up-to-date at version 23330 System Software Verification ============================ -`swupd` can determine whether the system software has been overwritten, removed, or modified in any way. +`swupd` can determine whether system directories and files have been added +to, overwritten, removed, or modified (eg., permissions). .. code-block:: bash sudo swupd verify +All directories that are watched by `swupd` are verified according to +the manifest data and hash mismatches are flagged as follows: + +.. code-block:: console + + Verifying version 23300 + Verifying files + ...0% + Hash mismatch for file: /usr/bin/chardetect + ... + ... + Hash mismatch for file: /usr/lib/python3.6/site-packages/urllib3/util/wait.py + ...100% + Inspected 237180 files + 423 files did not match + Verify successful + +In this case, python packages that were installed on top of the default +install were flagged as mismatched. `swupd` can be directed to ignore +or fix issues based on :ref:`command line options `. + +Fixing Hash Mixmatches +====================== + +`swupd` can correct any issues it detects. Additional directives can be +added including a white list of directories that will be ignored, if +desired. + +The following command will repair issues, remove unknown items, and ignore files or directories matching `/usr/lib/python`: + +.. code-block:: bash + + sudo swupd verify --fix --picky --picky-whitelist=/usr/lib/python + Bundles ******* @@ -60,6 +138,16 @@ You can list all of the bundles currently installed on the system sudo swupd bundle-list --all +Finding a bundle containing a binary +==================================== + +Run the following to display a list of bundles that contain a particular +binary. Note that it may be present in multiple bundles: + +.. code-block:: bash + + swupd search -b + Adding a bundle ===============