Debian Stable for a Month


Backstory

I have a problem: I... I am a distro hopper. I can't permanently settle on just one Linux distribution. I may settle on one for a few months, but I'll eventually get bored and want to go explore what another distribution is offering.

I have tried virtually all the most common Linux distros, including but not limited to Ubuntu, Mint, Debian, Arch, Fedora, OpenSUSE, KDE neon, MX Linux, Elementary, Bodhi, Puppy, Void, PCLinuxOS, Solus, Alpine, Mageia and many, many more. Which does honestly beg the question: why? What am I looking for?

Well in some cases, there was a genuine need. Puppy, for instance, I needed for a computer which didn't have a hard drive. Some were for curiosity sake, such as Mageia and Alpine. Most though were because I was bored and wanted to explore what they had to offer in contrast to what I was running.

I also have a bit of a flip-flop relationship with the idea of a stable desktop. Reliability is an important trait to me, but I also like having the newest and shiniest things. I mean, who doesn't? Unfortunately with many distros, these two things are in conflict with one another.

Debian is famously stable with its 2-year update cycle. If you want things to just work and keep working, look no further. On the complete flip-side, you have rolling release distros like Arch, Void and Gentoo which never settle and just constantly push out updates. Once you install it, you never have to do a major distribution upgrade. The downside though is you never get that exciting headline, "Arch 23.11 has released! Here's what's new!"

Of course, the upside is that whenever a distro is doing one of those major updates, it isn't that big of a deal. With a rolling system, chances are that you already have most of those new packages.

Debian Stable

As I mentioned, I've used Debian before a couple of times. However, I've always used Debian Testing as a pseudo-rolling distribution.

From what I understand, Debian has a package progression system where a package is first added to its Sid repository for preliminary testing, then it progresses into the testing repository. 6 months before the new stable version is released, the Testing repository is frozen and only bug fixes and security patches are added to it. Once it's deemed ready, that repository becomes the new stable and the cycle begins again.

I wasn't confident enough to use pure Sid, but I was confident enough to stay on testing for most of my work. I can't remember running into any breakages. But after some time, I presumably got bored and went to something else.

This time though, I tried using Debian Stable. A few things were different this time than the last time I used Debian, most critically the addition of Flatpaks.

Flatpak

Flatpak is an application sandboxing utility. It allows you to download an application and its dependencies in isolation from the rest of the system. There are other technologies similar to this for Linux, such as Snap and AppImage.

This is especially a really good thing for Debian though. Here's the logic: Debian is famous for its stability, but because of that stability, it will only package security fixes in its stable edition. As such, when Debian Stable is reaching its end of life after a year, the userland software can become rather stale and outdated. With Flatpak though, you can install the latest apps on Debian without needing to abandon that reliability.

Flatpaks are updated in isolation from the rest of the system and do not depend on system-level libraries. That way, you can allow Debian Stable to keep those libraries stable and secure while you can still enjoy the latest versions of your favourite applications.

There are some downsides to flatpaks though, such as the download sizes involved and the configuration can be a little bit weird compared to natively installed programs. The file size problem is more because each flatpak has to be packaged with all its dependencies since you're not relying on system resources. The configuration problem is due to the sandboxing, where some of the application settings need to be managed in a different way.

I thought this could be an interesting experiment to try, using Flatpak for my everyday applications and Debian Stable for my OS Core.

The Debian Experience

I was genuinely impressed with how well this worked. Debian is a fantastic desktop, everything more or less worked just as intended! It found my network printer right out of the box. (Note, I'm using an AMD GPU so I didn't have to deal with NVidia or really installing any non-free software.)

Flatpak gave me a fairly good experience. Firefox worked perfectly and I was able to use programs like VSCode, Gimp and all without much trouble. I did have to do some tricks with the command line to get them to work nicely with Wayland, but it wasn't too much trouble and I only had to do it once. After that, Flatpak automatically kept them all up to date without much fuss.

The updates were a nice change of pace too. A week after installation, I ran apt upgrade and only had 3 packages wanting to be updated. At this point, I was used to Fedora or Arch systems where you run the update command and you get like 30 different libraries you don't care about all wanting to update.

It was a great experience overall. However, there was one thing that was a bit frustrating: the desktop itself couldn't be a Flatpak. Gnome 43 is what you get for the next year and a half. I mean don't get me wrong, it's a great release and everything works as expected, but I like a little excitement in my life. I could switch over to testing to get Gnome 44.5, but that kind of defeats the point of my experiment. It could introduce instabilities in my core setup.

I could have kept living like that, but the trouble is that I got bored. It was simply TOO reliable, too stable. If I were running a desktop where I HAD to have 100% uptime for productivity, I could have ran that setup for years. However, I'm not that kind of user and I like to tinker with things.

In addition, while Flatpak is an interesting technology, I felt less in control of what I was running on my system. The sandboxing adds a weird layer between the programs I'm running and everything else. For example, Firefox would always initially try to download to some weird file location burried deep inside its sandbox instead of the logical ~/Downloads folder. Launching apps is also fairly verbose from the CLI, instead of running 'firefox' in a terminal, you'd launch 'flatpak run org.mozilla.firefox'.

Reflection

I did enjoy this little experiment and I think if you just wanted to get things done, you could easily live with a setup like this. This experience is likely what immutable systems like Vanilla OS, Fedora Silverblue and OpenSUSE MicroOS are trying to accomplish, where you have a rock-solid base with custom packages installed in isolation.

From what I've seen of those immutable systems, I'd actually vouch for Debian before using any of those. You aren't restricted to only using Flatpak, you can break out and use apt or tweak files in the root file system if you need to. At the end of the day, it's still a standard Linux distribution that you can manage how you like. Debian Stable itself has proven to be incredibly stable and a fantastic system to run.

I'm looking forward to the release of Debian Trixie where I'm sure I'm going to visit it again. Perhaps... In a Virtual Machine? (Haha, just a bit of a joke.)