The official Debian team was kind enough to provide a guide on Upgrades from Debian 12, which is designed to cover all possible configurations and edge cases. While this is an excellent resource, we took the liberty of creating a simplified version specifically for standard Debian 12 installations, or what we like to call the “vanilla” Debian setup, which comes with all of our VPS hosting plans.

This guide is for upgrading from Debian 12 to Debian 13. Direct upgrades from Debian 11 are not supported; you must upgrade to Debian 12 before following these instructions.

Pre-Upgrade Checklist

Before you begin the upgrade process, it is critical to complete the following checks to prevent data loss and system damage.

  • Storage: Make sure you have enough space for the upgrade by running df -h. Getting the upgrade process interrupted due to low disk space will most likely result in a damaged and unbootable system.
  • Backup: Validate that you have a recent backup of your data that you can’t afford to lose. Debian provides seamless distro upgrade experiences, but having your data in a safe space will always give you more confidence to do regular updates.
  • Downtime: Be prepared to experience short downtime. During the upgrade, a critical services will be restarted, which will cause a brief downtime. If you’re managing a multi-user system, inform your users in advance about this maintenance.
  • Remote upgrade: Make sure that you use the screen utility if performing a remote upgrade over SSH. SSH daemon will be restarted during the upgrade, so being able to continue the upgrade process via the terminal is a must. Another better alternative to achieve this is via the HTML VNC or KVM interface, depending on the type of service you use.

The Upgrade Process

Step 1: Keep your current system updated

In order to minimize package conflicts, first, ensure that you are running Debian 12 and it is fully up-to-date. First, start a screen session and run the following command:

sudo apt update && sudo apt dist-upgrade --autoremove -y

If this results in the installation of a new kernel, please make sure to reboot your system with sudo reboot in order to boot to the latest kernel.

Step 2: Update APT Sources for Debian 13

Next, you will need to reconfigure APT to use Debian 13 trixie repositories instead of Debian 12 bookworm repositories. You can do this manually by changing the contents of /etc/apt/sources.list using your favorite editor, or you can use this one-liner instead:

sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list

If your system has some 3rd party repos in /etc/apt/sources.list.d use the oneliner below, considering if the 3-rd party repository has support for trixie:

sudo find /etc/apt/sources.list.d -type f -exec sed -i 's/bookworm/trixie/g' {} \;

Once done, run sudo apt update to get the latest package list.

Step 3: Start the main upgrade

To minimize the risk of various package conflicts, we recommend a two-step upgrade process. In the first step, we will perform a minimal system upgrade, which will upgrade only the packages that can be upgraded without removing or installing any other packages. To do this, run the following command:

sudo apt update && apt upgrade --without-new-pkgs

Once done, we can perform a full system upgrade using:

sudo apt full-upgrade

This will install the newest versions of the packages and their dependencies, which occasionally may prompt you for your input on how to proceed. Once completed, reboot the system using sudo reboot

Post-Upgrade Checkup

After your server reboots, log back in and verify the upgrade using cat /etc/*release*. The output should show your current Debian version to DEBIAN_VERSION_FULL=13.0.

Debian 13 introduces official support for a new, more structured format for APT’s repository sources, known as the deb822 style. This modern format is designed to be more readable and less prone to syntax errors than the traditional single-line format found in /etc/apt/sources.list.

To modernize your sources, simply run the following command:

sudo apt modernize-sources

After running the command, your original /etc/apt/sources.list file will be backed up and left empty. Your system will now use the new /etc/apt/sources.list.d/debian.sources file for all APT operations.

And that is it, congrats, your system runs on Debian 13 now 🎉

Was this article helpful?