This page contains miscellaneous notes about the installation of (and also "upgrade to") Debian 13 "Trixie" on my computers. Historically, this page is a follow-up to my "other" Debian pages and supersedes these. It also documents some specific installation cases and also includes rants about some issues that I encountered. - As usual, this document has been "anonymised" in a few places; in particular IP addresses have been replaced by xxx or yyy.
Our setup consists of several desktop and laptop computers, mostly running Linux. Their internet access passed through a router (also running Debian 13) which serves as NFS server and Samba server.
On most machines that were running Debian 12, I simply performed an in-place upgrade of the existing system, instead on a new installation.
First, make sure the system is fully up to date:
apt update && apt dist-upgrade apt autoremove apt clean
Next, edit /etc/apt/sources.list and replace all occurrences of bookworm
with trixie
and add the new non-free-firmware parts.
You can do this with this command:
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list find /etc/apt/sources.list.d -type f -exec sed -i 's/bookworm/trixie/g' {} \;
Now, verify if we can access all upgrades:
apt update
If the previous command shows no error, we can proceed:
apt upgrade --without-new-pkgs apt full-upgrade apt autoremove apt clean
That's all :-)
The process can take anything between a few minutes and a few hours, depending on the speed of the machine and the number of packages installed.
You will be asked several times if you want to keep existing configuration files or if you want to overwrite them with the version provided by the package maintainer: For most of the server-related packages and for customized services such as ssh, I kept my version.
Once the upgrade is finished, reboot the system.
After rebooting the router, I noticed that all other machines in the network no longer had Internet access.
It took me a while to find out that /etc/sysctl.conf (which has the crucial parameter net.ipv4.ip_forward=1
) had been disabled;
such files are now supposed to live /etc/sysctl.d/. The problem was solved by:
mv /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf
Also, the format of the apt source files has changed. The following command will adjust this:
apt modernize-sources
If you run other operating systems on the same machine, you may want to run:
dpkg-reconfigure grub-pc
The initial installation was performed using the Debian 13 64-bit "netinstall" USB stick. The disk layout is identical to that described earlier: /p>
Partition | Size | Filesystem | Label | mount point | Comment |
---|---|---|---|---|---|
/dev/sda1 | 250 MB | vfat | EFI | /boot/efi | |
/dev/sda2 | 38 GB | ext4 | debian | / | This is the root filesystem of Debian 13 (on the fast SSD). |
/dev/sda3 | 11 GB | swap | swap | swap | Swap space. |
/dev/sda4 | 120 GB | ext4 | home | /home | Home directories, now on the fast SSD. |
/dev/sda5 | 305 GB | ext4 | vbox | /mnt/vbox | VirtualBox files. This really benefits from the fast SSD! |
/dev/sdb1 | 128 MB | vfat | EFI | (currently not mounted) | |
/dev/sdb2 | 430 GB | ext4 | share | /mnt/share | Local NFS export for music, photos, etc. |
/dev/sdb3 | 430 GB | ext4 | backup_local | /mnt/backup_local | Yet another backup space. |
/dev/sdb3 | 12 GB | swap | swap | swap | Swap space. |
As usual, almost all hardware worked right out of the box or with only minor tweaks, most of these are related to vendor-specific quirks:
Synchronising with the Palm PDA uses the jpilot
package.
As of summer 2025, this software was removed from the Debian repositories. Already installed packages do survive an upgrade, but if you are re-installing the system, you're out of luck.
The issue could be solved by downloading and installing the binaries and libraries from Ubuntu:
mkdir /opt/jpilot cd /opt/jpilot wget --content-disposition "https://packagecloud.io/judd/jpilot/packages/ubuntu/jammy/libpisock9_0.13.0_amd64.deb/download.deb" wget --content-disposition "https://packagecloud.io/judd/jpilot/packages/ubuntu/jammy/libpisync1_0.13.0_amd64.deb/download.deb" apt install ./libpisock9_0.13.0_amd64.deb ./libpisync1_0.13.0_amd64.deb wget --content-disposition "https://packagecloud.io/judd/jpilot/packages/ubuntu/jammy/jpilot_2.0.2-1_amd64.deb/download.deb" wget --content-disposition "https://packagecloud.io/judd/jpilot/packages/ubuntu/jammy/jpilot-plugins_2.0.2-1_amd64.deb/download.deb" apt install ./jpilot_2.0.2-1_amd64.deb ./jpilot-plugins_2.0.2-1_amd64.deb usermod -a -G dialout joe # add "joe" to the "dialout" group
Remember to use usb: as the communication port.
To fetch photos from an iPhone:
sudo apt install ifuse libimobiledevice-1.0-6 libimobiledevice-utils usbmuxd gvfs-backends gvfs-fuse
Ironically, the machine that I upgraded last - and where the upgrade failed - was the one that I am using all the time.
On my main computer I'm running VirtualBox. It was exactly (and only) on this machine that the upgrade failed and the machine "hang" upon reboot. When I tried to re-install the entire Debian 13 partition, it turned out that the repositories required to install VirtualBox (Debian fasttrack) were not ready, so I had to revert back to Debian 12.
As of 2025-08-23, this issue is not solved yet ... and perspectives are dim, since it would appear that Oracle has a policy preventing their employees to publish details of security bugs.
To install the latest Firefox versions, you can replace the Debian built-in firefox-esr by the versions provided by Mozilla (Source):
# import the Mozilla apt repository key, then check the fingerprint wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nThe key fingerprint matches ("$0").\n"; else print "\nVerification failed: the fingerprint ("$0") does not match the expected one.\n"}' # add the Mozilla apt repository to sources.list.d echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null # adjust priorities echo ' Package: * Pin: origin packages.mozilla.org Pin-Priority: 1000 ' | sudo tee /etc/apt/preferences.d/mozilla # remove the Debian-provided package and install the new one apt remove firefox-esr apt install firefox
To install Python modules that are not in the Debian repositories, use pipx
. This will install and manage a virtual environment:
apt install pipx ## this will also install python3.11-venv apt install python3-svglib
As normal user, you can then install the packages in your local environment:
pipx install qrbill pipx ensurepath
The Arduino development package provided by Debian is outdated (due to license issues for the newer versions). To install the actual 2.x version, I downloaded the AppImage version from the Arduino website, then proceeded as follows:
mkdir /opt/arduino chown -R joe:joe /opt/arduino/ ln -s /opt/arduino/arduino-ide_2.2.1_Linux_64bit.AppImage arduino usermod -a -G dialout joe
After upgrading to Debian 13, I got an error complaining about libfuse.so.2. Fortunately, this error is documented on the Arduino website and can be fixed with a simple
apt install libfuse2
One issue is that the local ~/bin directory is no longer in the PATH (unless you use a login shell), i.e. users cannot execute any scripts in their local bin directory without specifying the full path. To correct this for all users, edit the system-wide /etc/bash.bashrc and add:
# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi
I do not like the Breeze Theme since, in my very personal opinion, it wastes too much screen space, in particular in the file manager and in KMails folder lists.
In the previous Debian editions, I used the good old Oxygen style in combination with QtCurve to obtain a compact layout but it would appear that QtCurve is not available for KDE 6 yet.
However, there are other compact styles such as Kvantum and Fusion, which can be installed with apt install qt6-style-kvantum
.
Once installed, I modified the following settings to get a much more compact display:
Similar to this, the default KMail screen layout is a waste of screen space, so I did the following:
I'm using Debian on all of my computers; this includes laptops. The upgrade from Debian 12 "Bookworm" to Debian 13 "Trixie" on various laptops was performed along the same lines as described above and went seamlessly.