Hello,
So I’ve been a long time Linux user (since 2000) and for the past 20 years, I’ve been using exclusively Ubuntu and its flavours. Lately I’ve been seeing posts and articles about how Ubuntu’s Snaps are ruining the user experience and causing a lot of discontent. Since I was on the verge of scrapping Windows on my machine and going full Linux.
I started to explore the different distros out there. I installed Linux Mint, (K/L)Ubuntu, Ubuntu Budgie, Debian, Endeavour OS (Arch), Bazzite, Fedora, OpenSuse Tumbleweed, Elementary OS, Fedora Kinoite, Nobara, etc. I wanted to see which one could be my next long run install it and forget it distro. In the end, I was already comfortable with Kubuntu and the few tests I tried in a VM seemed like it was still pretty solid and I really didn’t have any reason to change. So I installed Kubuntu as my main and only OS… And I’m starting to regret it dearly.
Snaps really is awful. And the only reason is because Canonical is forcing it on its users. Modifying APT to install Snap packages instead of Debian packages?! And having certain software exclusively available as Snaps? Firefox, Thunderbird, CUPS, FFMpeg, and some of their own utilities like Firmware Updater, and even some KDE core stuff apparently?
So as I was finishing configuring my freshly installed Kubuntu, I was having problems with SDDM. My computer would completely freeze whenever I logged out. Like nothing worked except the power button on my PC. I installed the NVidia drivers and that appeared to have fixed it. I also installed ZSH and set it as my default shell. However, upon reboot, I realized all my Snap based apps were gone from my application menu. I couldn’t even set them as default apps in the control center. Firefox being one of them and that’s why I noticed.
After checking in the Discover app, I saw it was still installed. I noticed a bunch other ones were missing, but they all appeared as installed. I tried uninstalling Firefox and reinstalling, but that didn’t work. I don’t know whether it’s Snap or KDE that’s broken. So I started removing all the Snap variants and installing their Flatpak counterpart instead. But I soon realized this couldn’t be done with all software. Like CUPS. The printing system. It’s only available as a Snap??? You can’t even install it as a Debian package? Some apps are only available as Snaps and they won’t show up in my KDE applications menu or anywhere else.
This is incredibly frustrating and disappointing. I feel like I’m being pushed in a corner by Canonical. I’m afraid I really have to switch distributions after all these years. I think I’ll be installing Debian 12 stable. Besides, with Flatpak I can get fairly updated applications instead of the .deb packages. So the “old packages” reputation becomes almost irrelevant.
UPDATE:
So installing zsh and setting it as my default shell is what broke Snap. Apparently, zsh doesn’t run any of the /etc/profile and /etc/profile.d/ scripts which run scripts that set up environment variables for snap and flatpak and stuff. Adding the following line to /etc/zsh/zprofile fixed my problem:
emulate sh -c 'source /etc/profile'
Anyway, it’s still bullshit.
UPDATE 2:
Thanks @[email protected] for the advice. I’ve since reverted my default shell to bash in my /etc/passwd file and configured my console app to start ZSH instead to avoid any further problems. #LessonsLearned
You might generally prefer not setting zsh as the system-wide default shell, but rather just to be launched by default in Konsole or whatever terminal emulator you’re using.
The actual default shell will still show up in TTYs, or when you use thenewgrp
command, or I believe when you ssh into the machine, and probably other such edge cases, but usually, you can then just runzsh
to get into zsh.
Not setting it as the system-wide default shell just avoids any potential for problems, particularly also if some script doesn’t have a proper shebang.Having said that, on Debian-based distros, I usually still set the system-wide default shell to Bash (even though I use Fish), because the default
dash
shell is pretty much unusable.
Not unusable enough to prevent typing “zsh”+Enter (if you don’t typo), so this is definitely optional, but yeah, it comes up often enough thatdash
annoys me, and I haven’t yet had compatibility problems from setting it to Bash instead.Interesting. I’ll follow your advice and roll back my changes then.
Debian might be a good catch as you’re already familiar with deb, if you don’t mind packages being tested first before rollout.
if you don’t mind packages being tested first before rollout.
No actually. I don’t mind. In fact, that’s what I’m looking for. I want something rock solid that I can install and forget and expect it to boot every time.
If you can’t change your default shell that’s not really a lesson you should have to learn. You should be able to set your own default shell and this is coming from someone who’s shell preference is bash.
That’s true. Any software shouldn’t be dependent on what default shell you set.
But whose fault is it though?
Flatpak’s? Snap’s? For relying on the right environment variables being set? Or ZSH for not executing the scripts to set them?
…that’s…a good question 🤔
Throwing my hat in the ring for PopOS! I’m in a similar boat of a set and forget OS, and this one is working well!
Yeah but I don’t like their desktop environment. Same with Linux Mint. They’re awesome. But their desktop is lagging behind in look and feel. KDE is what I want.
Consider Aurora or Bazzite. If you wanna roll with KDE.
Imagine just turning it on and using it.
Chromebook easy Atomic Fedora with extra goodness baked in.
I really don’t see the point in Immutable distros. I see no real advantage over a regular distro.