Linux: Debian 13 "Trixie" (INCOMPLETE)

Debian logo

Contents

Introduction

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.

Upgrading from Debian 12 to Debian 13

Upgrading

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

Installing Debian 13 from scratch

Base install

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.

Specific Hardware

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:

Palm PDA

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.

iPhone

To fetch photos from an iPhone:

sudo apt install ifuse libimobiledevice-1.0-6 libimobiledevice-utils usbmuxd gvfs-backends gvfs-fuse

Specific Software

VirtualBox

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.

Firefox

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

Python modules

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

Arduino

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

Issues and weird things

Bash and PATH

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

KDE and KMail settings

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:

Debian 13 on Laptops

Generic

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.

Links