DEV Community

Fran Torres
Fran Torres

Posted on

Linux Desktop: rolling releases and immutability

It's been a long time since my last (and first!) post, but I felt like I had nothing to share. I would like to start writing more often but family obligations, work and impostor syndrome keeps pushing me away from it.
Anyway, after writing the btrfs and snapper setup for Fedora 33 and comparing it to openSuse's btrfs setup I realized that while it works, it's not as convenient as it could be.

I am lazy. I can follow complex processes for my work but not when dealing with my computer. I expect it to work with as little interaction as possible.

What should linux desktop look like (to me)?

I've been a linux desktop user for quite a while now and year by year I've added more requirements to my idea of an ideal linux desktop. Right now I could consider it something like this:

  • As stable as possible, with recovery options when an update goes wrong. This includes not having to look at the updates too much, just consider they will work. Otherwise having an integrated recovery system.
  • At least the kernel should be as up to date as possible, so that if I buy new hardware I don't need to consider switching to another distro.
  • Updated packages or not too old. Especially regarding desktop environments.
  • Closer to stock components if possible. I've got tired of customizations.

Now, the options I had:

  • Debian: stable is not an option unfortunately and when I've used testing or sid I've always had to be vigilant about the upgrades to avoid problems from time to time.
  • The Ubuntu team is doing a great job with the Enablement Stack, but you will still be running some software that's years old like the desktop. Running the latest version and upgrade every 6 months could be an option, but I was too used to Debian based distros and wanted a change.
  • OpenSuse Leap since version 15 is interesting. Basically every 2 years the new release will bring new kernel, desktops, etc; which will be a somewhat slow rolling experience. But that's still 2 years of waiting for major component changes. I had good experiences with openSuse in the past, their implementation of btrfs and snapshots is probably the best, so Tumbleweed could be an option.
  • Arch and Manjaro: I've ran Manjaro in the past, and having that testing repository where they basically hold arch updates for a while helps a lot. You have to delete customizations though.
  • Fedora: looked like a good balance between up-to-date components and stability, but lacked a polished recovery mechanism. Then I discovered Silverblue and made me consider it.

I've been running both systems for a while in the last year and here are my thoughts.

openSuse Tumbleweed

It is a great system, I can't deny it. The OpenQA is great and the amount of testing they do is amazing.
There's an article from Richard Brown explaining why regular release distributions are not an option for the desktop in his opinion, and while I subscribe pretty much all of his thoughts, because of the insane amount of software that can be considered part of any distro, it's almost impossible to ensure that everything will work.

For example, with the recent upgrade to Gnome 42 there are some broken components like the share section in configuration or cheese showing weird color artifacts. Are they deal breakers? Probably not, but that brings me uncertainty that maybe someday something I need breaks. The good thing is that they react quite quickly with fixes from upstream. The solution could have been just to not upgrade the system until Gnome 42.1 was released, but as I said I don't want to need to spend too much time checking what's being updated. I could have also rolled back and that would have helped because it's super easy in openSuse, but I was afraid that the next time I tried to upgrade, something else would break.

MicroOs looks super promising. They're not using any new technology, they're just changed the way the system does the updates and having the whole system as read only (over simplifying). But right now it's in early stages, the base image is incredibly small and requires more work in general, but once they have it, that is going to be the real Tumbleweed experience.

Fedora Silverblue

I'm not going to talk about immutable OSs now, there are quite a few talks in youtube, in blogs, etc. But basically the idea is that the core system will be read only, so if an update fails you can always go back to exactly the same state you were previously.

The fact that the base system can't be modified by the user brings some challenges mainly to developers, but also regular users. Where do you install your development libraries? How do I install applications?

For the first question toolbx and podman should be enough. Even more considering that most devs are getting used to containers nowadays.
The second question in general can be answered with flatpaks, which are a great way to have distribution independent applications that are always updated. In reality everyone is still trying to figure out how to put all these pieces together in the best way and sometimes you find a problem with a flatpak app that wouldn't happen with the distribution packaged version. Bear in mind that for basically every technology a flatpak app wants to use from the underlying system, some sort of bridge has to be built and not everything works right now.
Sometimes you'll have no other choice than to install the native packages into the system (what's called layering in Silverblue), but you shouldn't if possible.

I've been able to live with Silverblue up to the point where if I have to install linux to my parents I think I'll just use it. Flatpak experience has been good in general and it is improving every day. Hopefully developers will continue to adapt their flatpaks to build from source and not just use the packaged sources. Maybe this is just me being picky, but looks safer to me than just repackaging another format into flatpak.
Did I have to layer any packages? Yes. Unfortunately the Spanish ID smartcard requires 2 packages to be installed as RPMs directly and that forces you to have a browser installed natively (not as flatpak), so I have Chromium for that and Firefox as flatpak. Scanners don't work via flatpak, so your scanning application must be layered too. And lastly the nvidia drivers for my laptop. They are the only pain point of this setup because if there's a new kernel version coming I know I have to hold it for a week or so until a new version of the drivers is released. But only keeping an eye on the kernel I guess it's a price I'll have to pay. In my desktop with AMD hardware I can blindly install updates though.

Closing thoughts

I can't find a reason right now why I would need to change to a different distribution. The upgrade process even with regular Fedora has become incredibly safe, painless and nicely integrated with Gnome Software. Do you know what's the only problem I have with it? Being able to wait when the new version is released. I've done 33 to 34 and 34 to 35 and it went fine, but it's always better if you wait a month until things have settled a bit. You could even stay one version behind and you would still get kernel updates, but having an easy way to rollback I'm not considering it.
Having to layer some packages is not ideal definitely and you must adapt your workflow when developing, but I'm taking it as an opportunity to learn more about containers and use them more frequently professionally and in my free time.

I also have the feeling that I might have not been fair with Ubuntu and I could follow the same flow of upgrading every 6 months to the new release (waiting for a month for it to stabilize); and also that judging Tumbleweed because of 2 small issues with an update is not great and I'm sorry about it, but I always feel way more stressed than I should when something breaks and I need to find some balance and especially some peace of mind that I won't need to fix my computer a random day.

Top comments (0)