How to enable automatic system updates in Fedora Silverblue

Fedora Silverblue includes functionality to automatically stage and deploy system updates. While this functionality is available out of the box, it is not enabled by default. When enabled, the system will download and prepare new updates in the background of regular system usage. After the update is committed and the new system image is built, the new image will be used the next time the system is booted. In practice this means that every time you boot up to use your PC new updates could have been implemented.

Verify if automatic updates are enabled or disabled

To verify if automatic updates are enabled, run the following:

$ rpm-ostree status

If the output starts with something similar to the following, then automatic updates are already enabled:

State: idle; auto updates enabled (check; last run 22min ago)
...

How to enable automatic updates

Note, all the following commands need to be run as root or with sudo.

First, we need to update the system config. You can do so with the following command as an administrative user:

# sed -i 's/check/stage/g' /etc/rpm-ostreed.conf

Next, reload system service:

# rpm-ostree reload

Finally, enable an system timer that will automatically check for updates:

# systemctl enable rpm-ostreed-automatic.timer --now

To verify if the system has staged a new update, run:

$ rpm-ostree status

All done! Automatic updates are now enabled.

Further reading

For more information, you can find the man page about enabling this feature by running the following:

$ man rpm-ostreed.conf