Documentation

Updates & rollback

You don't have to do anything. That's the whole story. Margine updates itself in the background, every single day, without ever asking you to confirm, click, type a password, or open a terminal. This page is mostly about why that's a good thing β€” plus the rare moments where a button is involved.

You don't have to do anything πŸŽ‰

Once a day, in the background, Margine checks if a new image is ready, downloads it if it is, and stages it. Flatpaks (Bazaar apps) get refreshed in the same pass. When the new image is sitting on disk, GNOME shows a quiet "Restart to apply updates" message in the top bar / power menu. Click Restart whenever it suits you. Until you do, you're still running the previous image β€” no rush, no nag, no forced reboot.

That's it. No PPAs to baby-sit, no half- failed apt upgrade at 2 AM, no kernel-and- X-server-mismatch surprise, no driver to recompile after a kernel bump. You install Margine and stop thinking about updates.

Why that matters:

  • Less to keep in your head. A computer that updates itself is one less thing taking attention. You sit down, do what you came to do, close the lid.
  • Security without the friction. Patches roll out as fast as the upstream ships them. The automatic cadence means you're never the user running an unpatched system for three months because the update prompt looked annoying.
  • Identical-everywhere behaviour. Every Margine machine on the same release is byte-for-byte the same OS. If something works on one Margine, it works on yours; if a bug shows up, it's the same bug across the install base, and the fix lands for everyone at once.
  • You can always go back. The previous image stays on disk after every update β€” if a new release ever misbehaves, the boot menu has both versions ready to pick. See "Roll back" below.

Roll back if an update broke something

The simplest path is graphical:

  1. Open Activities β†’ Power β†’ Restart….
  2. While the machine reboots, tap the ↑ / ↓ arrow keys to stop the GRUB auto-boot countdown and show the menu (don't press Esc β€” it drops into GRUB's command line). You'll see two entries: Margine (current) and Margine (previous).
  3. Pick the previous one. You're back on the previous version, byte-for-byte.

To make the previous version permanent (so you stay on it next reboot too), open a terminal once you're back in and paste:

sudo bootc rollback
systemctl reboot

The broken update is still on disk and you can move forward again later, after a fix lands upstream.

Force an update right now

Most users never need this β€” the daily auto-update handles everything. But if you want to grab the latest image immediately (e.g. you read in the changelog that a bug you have was just fixed), open Ptyxis and paste:

ujust margine-update
systemctl reboot

ujust margine-update is the safe manual update: it auto-detects whether you've added a layer (e.g. with ujust margine-gaming-native) and uses the right engine under the hood β€” rpm-ostree upgrade on a layered system, bootc upgrade otherwise. Don't run sudo bootc upgrade directly: it refuses on a layered deployment (Deployment contains local rpm-ostree modifications; cannot upgrade via bootc). And don't reach for rpm-ostree reset to "fix" that β€” it wipes every layered package (e.g. your whole gaming-native layer).

After the reboot, the validators tell you what you're on:

margine-validate-margine-system

Pause updates temporarily

Going into a tight deadline and don't want even a "click to restart" notification?

sudo systemctl disable --now uupd.timer

Re-enable when the deadline is past:

sudo systemctl enable --now uupd.timer

Under the hood (for the curious)

The daily routine is a systemd timer that fires once a day and orchestrates three things in the right order:

  • bootc upgrade (or rpm-ostree upgrade on a layered system β€” uupd auto-detects which to use) β€” pulls a new OS image, stages it as a deployment.
  • flatpak update β€” refreshes installed Flatpaks (Bazaar apps).
  • distrobox upgrade β€” refreshes any Distroboxes you have.

"Stages" is the key word: nothing replaces the running system. Restart picks up the staged version atomically.