LinuxCommandLibrary

swupd

Update software on a Clear Linux system

TLDR

Update to the latest version

$ sudo swupd update
copy

Show current version, and check whether a newer one exists
$ swupd check-update
copy

List installed bundles
$ swupd bundle-list
copy

Locate the bundle where a wanted package exists
$ swupd search -b [package]
copy

Install a new bundle
$ sudo swupd bundle-add [bundle]
copy

Remove a bundle
$ sudo swupd bundle-remove [bundle]
copy

Correct broken or missing files
$ sudo swupd verify
copy

SYNOPSIS

swupd [OPTIONS] COMMAND [COMMAND_OPTIONS]

PARAMETERS

update
    Updates the system to the latest version available in the configured update channel.

info
    Displays information about the current system version, update channel, and other relevant details.

bundle-add
    Adds the specified bundle to the system, installing the necessary software packages.

bundle-remove
    Removes the specified bundle from the system, uninstalling the associated software packages.

check-update
    Checks for available updates without actually applying them.

-v, --version
    Displays the version of swupd.

--help
    Displays help information for the swupd tool or the specific subcommand

DESCRIPTION

swupd is the software update delivery tool used by the Clear Linux* OS to manage system software. It's designed for efficient, secure, and reliable updates by leveraging a stateless operating system model. swupd operates on the principle of manifest-driven updates, meaning that a central manifest defines the complete state of the system and all updates are based on comparing and applying changes defined within these manifests. This allows for deterministic and verifiable updates, minimizing inconsistencies and improving security.

The command allows the user to keep the OS up to date, manage bundles (groups of software packages), and verify the integrity of the system. It also includes support for rollback to previous versions and creating custom OS versions. The key feature of swupd is its ability to deliver updates quickly and efficiently using delta updates, only transferring the changes needed to update the system, rather than the entire operating system image.

CAVEATS

swupd is primarily designed for use with Clear Linux* OS and may not be compatible with other Linux distributions without significant modifications. Requires root privileges for most operations.

UPDATE CHANNELS

swupd uses update channels to provide different levels of software stability and feature sets. Users can switch between channels to receive more frequent updates (with potentially less stability) or stick to more stable channels with fewer updates.

The channel is defined in /etc/os-release and its content can be accessed by os-release command. The default channel is 'os'. The channel number represents the build number on the build server and the software is validated before it can be used.

BUNDLE MANAGEMENT

Bundles are logical groupings of software packages that provide specific functionalities or development environments. swupd makes it easy to add or remove bundles as needed, allowing users to customize their system with only the software they require.

BEHIND THE SCENES

swupd uses /var/lib/swupd, /usr/share/defaults/os-release, /etc/os-release to function properly. It is imperative that these folders exist, have the correct permissions and content.

HISTORY

swupd was specifically developed by Intel for Clear Linux* OS. The tool was created to address the need for a robust, efficient, and secure software update mechanism in a modern, cloud-native operating system. It emphasizes a stateless system design, allowing updates without conflicts and enabling easy rollback. swupd development began in the early stages of Clear Linux* OS and has been continually refined and improved upon since its initial release.

SEE ALSO

stateless(7)

Copied to clipboard