this post was submitted on 01 Oct 2024
16 points (90.0% liked)

Linux

5318 readers
216 users here now

A community for everything relating to the linux operating system

Also check out [email protected]

Original icon base courtesy of [email protected] and The GIMP

founded 1 year ago
MODERATORS
 

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 are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 5 points 1 month ago (1 children)

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 the newgrp command, or I believe when you ssh into the machine, and probably other such edge cases, but usually, you can then just run zsh 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 that dash annoys me, and I haven't yet had compatibility problems from setting it to Bash instead.

[โ€“] [email protected] 3 points 1 month ago

Interesting. I'll follow your advice and roll back my changes then.