The insidious urge to fix what ain’t broke has arisen. I’ll probably follow the official documentation, unless someone has a better suggestion.
I’m not running anything unusual and I haven’t done much, if any, “customization”. I update packages maybe a couple of times a week, so they’re current.
Should I go ahead and put myself through this now, or wait until support is dropped and I’m forced?
I upgraded 50 boxes from 9 to 13 last week.
The two dovecot were the most work. Some guacd had trouble with file permissions and I had to manually install and enable a few php8.4 packages and manually apply powerdns db migration scripts.
Oh, powerdns renamed master/slave to primary/secondary, too.
I had no trouble at all.
For the most part, it’s pretty painless. Unless you have a super complex setup you’ll be fine.
Is it painful? I’ve upgraded several versions without difficulty. “third party” repositories are problematic so be sure you follow the guidelines about disabling them.
The upgrade itself is never a problem.
The real problem is when your server is running an old software that breaks after the update.
For example I had an old php/drupal site and it broke after upgrading debian because the upgrade also updated php to a newer version that is not supported by that old version of drupal.
This is where docker becomes a godsend
The fewer packages you have installed, the easier it is to upgrade. So if your stuff is containerized, upgrade should be mostly painless.
In my history at least, dist-upgrades have never themselves been a problem, not even when doing such things as a x86-to-x64 crossgrade upgrade (from Stretch to Buster, back in the time). The problem usually comes right after, with the first reboot, when something does not generate correctly in Grub or the new kernel’s initramfs is lacking a specific module, or a given mariadb flag you were counting on is no longer added by default, or somesuch. So always have a rescue boot ready.
I’ve found that dist upgrades themselves are fine, but it usually breaks something. Last time it was my janky WordPress installation which was using PHP 7.4. The wordpress version was up to date but it wouldn’t use the installed 8.2 php and just broke. In the end I installed a fresh wordpress and copied the data over.
The trick is to get wordpress from debian’s repos itself. That way your wordpress is managed by debian and receives automatic security updates.
Backup your data: the stuff you can’t just reconstruct.
The go for it. Worst comes to worst: reconstruct the system and applications and reimport the data.
If you have capacity: do it in a VM first.
I migrated from Ubuntu to Debian, but my workloads were containerized. Went smoothly. But I had backups.
This is why I’ve started running most services as containers inside of an LXC container in Proxmox
The official docs have everything, though not as well ordered and concise as they could be.
I’ve taken my server from 11 to 12 to 13. Only issue was 11->12 where backports caused some issue that I no longer remember the specifics of (never broke SSH link), so I just don’t fuck with backports anymore. You need to have your shit together for backports, from what I’ve gathered.
12->13 was abs smooth as butter. Extra 3rd party repos weren’t even an issue. One I had to leave “bookworm” because they didn’t have trixie entries; I found it had no trixie entry by looking at the repo itself - it just kept working no problem after the upgrade anyway.
And I have a “stretch” repo I took from 12 to 13 on another server (it’s mongoDB 4.4 for unifi, an abs shitshow of software those bozos cook up)Anyway tldr docs are good narry a problem will occur.
I’ll probably follow the official documentation
I just apt update, apt upgrade, modify my apt sources to point at the new distro, repeat. If something breaks, I’ll go fix it.
I wouldn’t anticipate problems, though.
0.076
Update when you can afford downtime. The update should be painless but you know how it is: things go crazy when they shouldn’t. Every time.
I snapshot my machine, set it to go overnight, went to bed. Woke up, 24% done “Do you want to use the package maintainer’s version?”. Grr. Went smooth though.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters LXC Linux Containers NAS Network-Attached Storage SSH Secure Shell for remote terminal access VPS Virtual Private Server (opposed to shared hosting) ZFS Solaris/Linux filesystem focusing on data integrity
[Thread #149 for this comm, first seen 30th Oct 2026, 13:20] [FAQ] [Full list] [Contact] [Source code]






