Debian 13 “trixie” has been out for about a year, so I finally upgraded my small server from Debian 12 “bookworm”. Short version: boring, which is exactly what you want from Debian.
These are my notes, not a replacement for the official release notes. Read those first.
Before
# fully up to date on bookworm first
sudo apt update && sudo apt full-upgrade
# anything held or not from Debian?
apt-mark showhold
apt list '?narrow(?installed, ?not(?origin(Debian)))'
I also took a backup (restic, see this post) and a disk snapshot, and made sure I could reach the machine through a console in case SSH didn’t come back.
The upgrade
Switch the sources from bookworm to trixie:
sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list
Then upgrade in two steps, as the release notes recommend:
sudo apt update
sudo apt upgrade --without-new-pkgs
sudo apt full-upgrade
For config files I’d changed (sshd_config, mostly), I looked at the diff and kept my version where
the change was only mine.
After
sudo reboot
cat /etc/debian_version
sudo apt autoremove
trixie ships APT 3.0, which can convert old one-line .list files to the newer deb822 .sources
format:
sudo apt modernize-sources
Then I checked that every service I care about was running:
systemctl --failed
journalctl -p err -b
systemctl --failed was empty, and the only errors in the journal were from a service I’d forgotten
existed, which I removed.
Total time
About 40 minutes, most of it reading and preparing. The actual upgrade took less than ten.