1
Updating
David Young edited this page 2026-10-26 16:01:09 -06:00

Updating

update

Run this at least once a month:

update

It pulls the latest CoreDesktop, then runs each step in ~/.local/share/coredesktop/updates.d/ in order. Among other things, it:

  • stops if there's less than 10 GiB free on / (UPDATE_FORCE=1 update skips this check)
  • takes a Snapper snapshot of / first, on btrfs
  • updates the Arch keyring, then Arch and GNOME, AUR packages, Flatpaks, Ruby, pipx apps, GNOME extensions, sibling projects and the AI agents
  • installs packages newly added to CoreDesktop, and removes ones it has dropped
  • runs any one-time migrations this machine hasn't had yet
  • reports available firmware updates; it doesn't install them (run fwupdmgr update yourself)
  • removes packages nothing needs any more, and lists them
  • tells you if you should reboot, or warns you not to if the initramfs failed to rebuild

You type your password once; update keeps sudo alive until it's done. If a step fails, the rest still run, and the failures are listed at the end:

Done, with errors in: 20-aur.sh

To keep a package that update removes as unneeded, mark it as one you installed yourself:

sudo pacman -D --asexplicit <package>

If Arch itself won't update, check the "Latest News" on https://archlinux.org. It often explains a needed manual step.

Update notifications

A few minutes after you log in, and every 4 hours after that, CoreDesktop checks for a new version. If there is one, a notification appears. Click it to run update in a terminal. If you dismiss it, you won't be notified again until there's an even newer version.

version

$ version
CoreDesktop  2026.10.22 (c5f0651)
Kernel       7.2.11-arch1-1
Last update  2026-10-22 13:43

CoreDesktop is a rolling release, so its version is the date and id of the latest change on your machine. version also tells you:

  • if a newer CoreDesktop is available
  • if a newer kernel is waiting for a reboot
  • if the CoreDesktop folder has local changes ("modified"), which can stop update from pulling

refresh

refresh re-runs the full installer. update already installs new packages and runs migrations, so you rarely need refresh. Use it to repair an install, or to pick up something that only the installer sets up. Run update afterwards.

Snapshots and rolling back

If / is btrfs (the archinstall default), Snapper snapshots / before every update and keeps the last 5. /home is a separate subvolume and isn't included, so rolling back never touches your files.

sudo snapper -c root list

These snapshots can't be chosen from the boot menu. To roll back after a bad update, boot the Arch ISO and replace the @ subvolume with a snapshot:

mount -o subvolid=5 /dev/<root partition> /mnt
mv /mnt/@ /mnt/@.broken
btrfs subvolume snapshot /mnt/@.snapshots/<number>/snapshot /mnt/@
reboot

If the disk is encrypted, open it with cryptsetup open first and mount the opened device. Once the system works again, free the space the broken root used:

sudo mount -o subvolid=5 /dev/<root partition> /mnt
sudo btrfs subvolume delete /mnt/@.broken
sudo umount /mnt