There's a very strong reaction here from users, but overall if more software became snap-only (or FlatPak-only, or anything-only), it would solve one of Linux's biggest pain points as a software developer.
MSI on Windows is completely fucked, PKG on Mac has a few footguns, but at least they're universal, decades-old standards supported by mature tooling. You release an MSI/PKG, and you're done. Works on every Windows/Mac system, no issues.
On Linux, an OS with 3% market share, there are more competing standards to count: Deb, RPM, snap, FlatPak, AUR, AppImage and probably a dozen other semi-popular ones. Every individual user has their opinion (and they'll voice it!) as to which standard is the best. At best, this leads to God knows how many man-hours of duplicated work packaging and QAing. At worst, it leads to the dev abandoning the thought of Linux altogether.
Linux on Desktop simply can't move forward by continued bike-shedding over frankly irrelevant details. Even if the only rationale for a standard is "Because Mike Shuttleworth said so, and he got a phone call from Mandela in space", that's a massive improvement over the current status quo.
> it would solve one of Linux's biggest pain points as a software developer.
Maybe true for proprietary software, but for FLOSS it is a non issue once your software has traction and gets picked up by distributions. I wrote a piece of open source in ~2002 and it is still found in pretty much all distros AND I never spend a minute in pain over packaging difficulties.
IMHO, the basic package managers work REALLY well for FLOSS. The gave me a peak into the AppStore/PlayStore(tm) experience (but then without all the spyware), waaaaay before they even existed.
Having N distributions repeat almost identical packaging work on different schedules and sometimes falling many versions behind is not a "non issue". You're excusing something Linux is genuinely bad at. I say this as someone using it personally and professionally for 12+ years.
> On Linux, an OS with 3% market share, there are more competing standards to count: Deb, RPM, snap, FlatPak, AUR, AppImage and probably a dozen other semi-popular ones.
AUR is explicitly a community-driven effort. The others are packing standards, some of which (like DEB and RPM) are also used in community-driven efforts. Debian and RedHat derivatives have repositories that use DEB and RPM, respectively. There's not a lot of bike-shedding, here. Availability of functional software is a pretty big feature of Linux distributions.
And there is a big difference between those community efforts and the likes of Snap, AppImage, and FlatPack, which are developer-centric. User preferences on software distribution aren't always or even usually based on irrelvent arguments, but fundamental ones. The community efforts centralize dealing with compatibility and, to an extent, security with community standards, while the developer-centric model largely leaves this work to software developers alone. This is a meaningful distinction.
DEB is working fine for most users, for the corporate/Fedora users RPM also is good enough. Flatpak works great for GUI applications as well, it integrates nicely with most "app store" interfaces on Linux.
DEB vs RPM is an ancient debate, each comes with its pros and cons. Flatpak and Snap try to solve a different problem (sandboxing + dependency hell vs stable system-wide dependencies).
MacOS has PKG, but most software I've seen actually comes through DMG images or ZIP files. Windows has MSI, which, if you use it correctly, actually elegantly solves most problems; the features that were added to allow developers to bypass the declarative installation process are what usually breaks MSI installers.
But then modern Windows now features has packages installed through .appx, .appxbundle, .msix, .msixbundle, and plain old .exe. Windows Mobile (based on Windows CE) had .cab; Windows Phone 8/8.1 (based on Windows 8) had .xap; Windows 10 Mobile had .appx. Now Windows 11 also supports .apk files from Android!
In the end, the package method doesn't matter. Users don't care where the package comes from, they just want to install the application and run it. Deb, Flatpak, RPM and Snap all work fine from tools like Discover or GNOME Software; it really doesn't matter to normal users what kind of packaging system they use.
The thing is, none of the mainstream package formats solve the underlying problem, they just push it to a different layer.
I know what I’m saying can be regarded as “+1 different standards”, but Nix is the only truly novel approach to package management that can reliably install a huge-ass behemoth package group like Gnome, install Plasma next to it and remove both without a single garbage file laying around afterwards.
I think we really should embrace this uniquely good solution.
Nix fails the "don't make me think" test unfortunately. Flatpak is winning because you can head-empty dump a working application into it and it will work. Nix requires discipline on the part of the packager which will never scale.
Indeed - and they provide separation between a stable OS (which debs are fine for) and frequent desktop app updates. I've been using Snap, Flatpak and Appimage for desktop/productivity apps (Krita, DigiKam, Spotify, Signal, calibre etc) where possible. Its been amazing getting updates in a timely fashion, sometimes straight from the developer, instead of having to wait years for the DEBs to be updated.
This is really overcomplicating it. Most mainstream end user Linux programs - including Firefox [0] - are distributed through archives you just unpack and run the binary inside, same as most Windows freeware. AppImages are just self-extracting versions of this. Most of the other formats you mention are for distro package managers - these aren't distribution formats and it's not the responsibility of the program authors to package for every distro, nor is it required for a package to be in repositories for people to run it.
Just ship an ELF binary in an archive. Include any files and libraries you need. Compile against the oldest glibc found in any system you care about supporting. That's all you need.
Comparing Windows and macOS to Linux is moot and we should stop doing it. Linux has always been and will continue to be an ecosystem driven by various communities, and expecting everyone to agree on the same standards is silly.
The sooner we all begin treating Ubuntu and Red Hat Enterprise Linux as separate Operating Systems the sooner we can all move on from the "single standard" and "Linux on Desktop" debates. As an application vendor I always find it amusing when customers ask if we support Linux. My response is no, we don't support Linux but we do support Ubuntu 18+ and RHEL 8. Linux distros are so wildly different these days, not just in software but in ideologies, that this distinction is important, and there's nothing wrong with that.
Not in 2022 they're considered different Operating Systems. People have been developing AppImage, Flatpak and snap for a reason. They're being used and it's a thing.
Yeah, the year of the Linux desktop isn't coming, but it's not 2001 either. We've standardised onto a few technologies pretty much everyone adopt except the ones that want to be different: systemd, Flatpak being the most used cross-distro system, pulseaudio (and pipewire offers a 100%-compatible shim for it), dbus, NetworkManager and now finally with GNOME 42/libadwaita we can have even standardised UI design.
And like many other things frontend, things move at a pretty rapid pace. Ubuntu 18 is ancient, might be good for a server, but it's not a good idea to use that as a metric for where the Linux desktop is.
I'm willing to bet that desktop linux's market share is not going to move one way or another with any packaging format changes. The best hope currently is steam deck, which may bring a new generation of users to linux, although in a pretty limited capacity.
I would be fine with Firefox packaged as snap. If snap would have the decency of working fine with the typical configuration used in managed systems (NFS home mounts, LDAP auth and similar stuff). But it doesn't. Until that day, snap is as bad as any other deployment technique.
I don't like this at all. The Firefox snap has really bad crashing issues, and the filesystem sandbox makes using the file picker confusing especially for my nontechnical family members.
I tried using the snap, I really gave it an honest attempt, and it stinks. The final straw was when removing and reinstalling the snap deleted my Firefox profile. That was really unacceptable. Removing Firefox via apt doesn't wipe out ~/.mozilla
Snapd is now removed and pinned with negative priority on my Ubuntu systems so it will never be installed.
I'd like to find a PPA that builds vanilla Firefox but so far I've only come across ESR and Beta.
I've considered switching to Chromium over this nonsense though I'll try running tarball Firefox first, I didn't realize it could update itself. Maybe Librewolf is an option too.
I installed Ubuntu a few weeks ago at work because most people use it and there is some existing infrastructure around it (mostly for the target platforms, but could also be for dev machines).
I have to say that coming from Arch, it's a very Windowsy experience: lots of software has to be installed by searching for "install XYZ on Ubuntu", and following some instructions that involve scary-looking command lines that mess with cryptographic keys and add repos to my configuration, or, for a real Windows experience, install from a deb and hope you remember where you got it from when it needs an update.
I know the AUR is no more secure than that, but at least if someone makes a bogus package full of evil, it'll be flagged on that platform. If I install whatever from some random third-party repo, how will I ever know if it's gone bad?
I also come from Archlinux. A few months ago I discovered the mpr repository [1]. It is essentially the same as the AUR bit for Ubuntu. The syntax is also the same as the AUR packages, so it is super easy to port a package to Ubuntu. I highly recommend it.
> lots of software has to be installed by searching for "install XYZ on Ubuntu", and following some instructions that involve scary-looking command lines that mess with cryptographic keys and add repos to my configuration, or, for a real Windows experience, install from a deb and hope you remember where you got it from when it needs an update.
Ironically this is exactly the problem that snaps solve; what you describe is exactly why others complain about it.
I jumped in several months ago and haven't really regretted it. The caveat being that you have to be okay with learning Nix (the language), debugging with only arcane error messages to go off of, and reading a lot of the config source because documentation is vast but shallow. If you feel like you're willing to make the tradeoff, then it is a blast and you'll be surprised you ever lived without Nix.
In case you want some inspiration or to take an existing config and run, feel free to take a peek at or use mine: https://github.com/jakehamilton/config
Time ago, when OpenSolaris dead I've switched to Ubuntu, until Unity (WM) was there it was good enough, after they took "the enterprise path", I'm on NixOS, there are a bit of annoyances to run unpackaged binaries but the rest work like a charm AND it's fully reproducible AND creating a custom iso is just the config + a oneliner, so deploy a personal desktop/homeserver is as easy as deploy in an enterprise automated infra without the burden of it.
The nix language is indigestible for me, so I eye Guix System but so far Guix does not have things I like/need so still on NixOS in a calm state: systems updated, automated, reproducible without thinking and babysitting them continuously.
I ran into weird issues with pop. I don’t think it’s a pop issue. I forget the exact issue but I was trying to install a couple of applications and I couldn’t because it said it was only for Ubuntu. I ended up hacking some file changing the name of the OS from Pop to Ubuntu and it installed and worked fine.
Honestly after that I never tried it again.
Currently running manjaro but really wanna give fedora a try cos seems people who use it swear by it.
I hope Neon (a non Ubu-family derivative of Ubuntu) is going to make a stance against snap. They can become a place of refuge for snap haters.
In the same vein I installed openSuse Thumbleweed and Fedora; as I'm looking for a way out. I hope Fedora allows me to install all opensource packages without Flatpack or I also ditch them. BTW Fedora's F35 installer has a horrible partition configurator, worst experience in two decades of installing Linux.
... on our systems we removed snapd on purpose, because we only have problems with it (we have NFS-mounted homes, and many snap packages don't work in this configuration)... now Firefox on snap doesn't sound good for us.
Snap gives all kind of headaches. I remember trying VSCode and I had problems working with files normally. I asked for help and I got quite a bit of backlash because I didn't wan't to deal with another layer of configuring a system just to access to my local files, and even after that you won't get the same experience.
But apparently I'm some bastard n00b that does not care about security enough! Can you imagine trying to access your files from your editor like you've been doing for decades? This guy doesn't get it!
Apparently flatpak et al have the same problems.
In my case, I'm not sure where to switch. I want easy of use, I don't really enjoy meddling with the OS. I use Xubuntu because it works better out of the box for me, but if I have to deal with this, I'm not interested.
I don't know what kind of hoops Snap require to access files. Flatpak, however, has a pretty simple system for a fully sandboxed app to open a file or a directory: it just opens a file or directory picker, you pick a file or directory, and the app gets access to that file or directory without getting access to anything outside what you picked. Behind the scenes this is done via the XDG Portal system, but that's irrelevant to the end user who only sees a normal file open dialog.
Then for apps that have dotfile-type directories where you can put config files and other stuff, those simply exist in app-specific directories under .var in your home directory, so they're not difficult to find either.
I couldn’t save files from Firefox to an NFS-mounted folder inside of my home directory with the snap version. I would have figured that was something that wouldn’t make it through testing.
My impression is that many configurations not commonly used by home users (but used by power users, schools, companies, etc.) are not properly tested in Ubuntu. In the past we had a lot of problems with pam_unix2, which was the only module at that time which could properly handle NIS passwords and password changes, we ended up recompiling the package as there no reactions to bug reports...
I'll take a counter approach. it makes sense to install firefox via snap.
firefox breaks if you overwrite its files. therefore installing "normall" via dpkg is bad while firefox is in use (especially on a multi user system). running via a container ensures that the existing running processes don't break while allowing you to upgrade and have any new instance get the new version.
there are reasons to dislike snap, but the usage of containers (even as simply a packaging mechanism, not any form of isolation) can improve user experience.
Same, I have been using snap to run Firefox and Chromium for about more than a year (personal usage, not professional), and rarely had issues. I had one issue regarding a feature like WebGL or a file picker, but it was solved after 5 minutes of googling, and it was about running a single command line to give more permissions to the snap package. This way of distribution works quite well for big applications with many dependencies that you want to be automatically updated without fear of breaking some shared libraries.
I also feels more confident trying new applications with snap. I know I can easily install different versions and uninstall them without breaking the system.
> Canonical and Mozilla are working together to make the firefox snap the only supported package in Ubuntu, thus deprecating the deb package in the archive.
> This was ultimately Mozilla's decision as part of the redistribution agreement. Mozilla could have just pulled it from being redistributed at all. This was the only way they were willing to allow Firefox to be redistributed as part of Ubuntu.
which seems at least odd (if not contradictory), given that Mozilla and Linux Mint have partnered to distribute Firefox as deb package, compare https://news.ycombinator.com/item?id=30777066 .
Native messaging (which I use for my password manager) is broken. Screen sharing is broken. File picking/saving is hit and miss. It takes longer to start. My list of disks in bottom is riddled with random snap mounts.
Whoa! That's enough showstoppers for me. Where did you switch to?
When Ubuntu dropped 32-bit support, I relatively easily switched my old 32-bit netbook from Ubuntu to Debian (by changing the sources and some manual fiddling with packages). OTOH, I'm using Fedora on my work computer, just for the fun of it, and I'm really satisfied with it.
MSI on Windows is completely fucked, PKG on Mac has a few footguns, but at least they're universal, decades-old standards supported by mature tooling. You release an MSI/PKG, and you're done. Works on every Windows/Mac system, no issues.
On Linux, an OS with 3% market share, there are more competing standards to count: Deb, RPM, snap, FlatPak, AUR, AppImage and probably a dozen other semi-popular ones. Every individual user has their opinion (and they'll voice it!) as to which standard is the best. At best, this leads to God knows how many man-hours of duplicated work packaging and QAing. At worst, it leads to the dev abandoning the thought of Linux altogether.
Linux on Desktop simply can't move forward by continued bike-shedding over frankly irrelevant details. Even if the only rationale for a standard is "Because Mike Shuttleworth said so, and he got a phone call from Mandela in space", that's a massive improvement over the current status quo.
Maybe true for proprietary software, but for FLOSS it is a non issue once your software has traction and gets picked up by distributions. I wrote a piece of open source in ~2002 and it is still found in pretty much all distros AND I never spend a minute in pain over packaging difficulties.
IMHO, the basic package managers work REALLY well for FLOSS. The gave me a peak into the AppStore/PlayStore(tm) experience (but then without all the spyware), waaaaay before they even existed.
At the same time snap packages have serious downsides for end users.
AUR is explicitly a community-driven effort. The others are packing standards, some of which (like DEB and RPM) are also used in community-driven efforts. Debian and RedHat derivatives have repositories that use DEB and RPM, respectively. There's not a lot of bike-shedding, here. Availability of functional software is a pretty big feature of Linux distributions.
And there is a big difference between those community efforts and the likes of Snap, AppImage, and FlatPack, which are developer-centric. User preferences on software distribution aren't always or even usually based on irrelvent arguments, but fundamental ones. The community efforts centralize dealing with compatibility and, to an extent, security with community standards, while the developer-centric model largely leaves this work to software developers alone. This is a meaningful distinction.
DEB vs RPM is an ancient debate, each comes with its pros and cons. Flatpak and Snap try to solve a different problem (sandboxing + dependency hell vs stable system-wide dependencies).
MacOS has PKG, but most software I've seen actually comes through DMG images or ZIP files. Windows has MSI, which, if you use it correctly, actually elegantly solves most problems; the features that were added to allow developers to bypass the declarative installation process are what usually breaks MSI installers.
But then modern Windows now features has packages installed through .appx, .appxbundle, .msix, .msixbundle, and plain old .exe. Windows Mobile (based on Windows CE) had .cab; Windows Phone 8/8.1 (based on Windows 8) had .xap; Windows 10 Mobile had .appx. Now Windows 11 also supports .apk files from Android!
In the end, the package method doesn't matter. Users don't care where the package comes from, they just want to install the application and run it. Deb, Flatpak, RPM and Snap all work fine from tools like Discover or GNOME Software; it really doesn't matter to normal users what kind of packaging system they use.
AppImage and Flatpak are fine, and AppImage is the first choice amongst this "everything included" bundle formats.
However, Ubuntu is forcing snaps as a power move. Both the software, and the treatment from Canonical is off-putting a lot of enthusiasts right now.
I know what I’m saying can be regarded as “+1 different standards”, but Nix is the only truly novel approach to package management that can reliably install a huge-ass behemoth package group like Gnome, install Plasma next to it and remove both without a single garbage file laying around afterwards.
I think we really should embrace this uniquely good solution.
Just ship an ELF binary in an archive. Include any files and libraries you need. Compile against the oldest glibc found in any system you care about supporting. That's all you need.
[0] https://download-installer.cdn.mozilla.net/pub/firefox/relea...
The sooner we all begin treating Ubuntu and Red Hat Enterprise Linux as separate Operating Systems the sooner we can all move on from the "single standard" and "Linux on Desktop" debates. As an application vendor I always find it amusing when customers ask if we support Linux. My response is no, we don't support Linux but we do support Ubuntu 18+ and RHEL 8. Linux distros are so wildly different these days, not just in software but in ideologies, that this distinction is important, and there's nothing wrong with that.
Yeah, the year of the Linux desktop isn't coming, but it's not 2001 either. We've standardised onto a few technologies pretty much everyone adopt except the ones that want to be different: systemd, Flatpak being the most used cross-distro system, pulseaudio (and pipewire offers a 100%-compatible shim for it), dbus, NetworkManager and now finally with GNOME 42/libadwaita we can have even standardised UI design.
And like many other things frontend, things move at a pretty rapid pace. Ubuntu 18 is ancient, might be good for a server, but it's not a good idea to use that as a metric for where the Linux desktop is.
This is why my daily driver isn't Ubuntu (or Debain, because I also hate apt - it also sucks).
Deleted Comment
How to Fix Firefox Crashes on Ubuntu 21.10+ https://www.mikekasberg.com/blog/2022/03/21/how-to-fix-firef...
> ..The snap version of Firefox currently suffers from several problems that can lead to a bad user experience, including crashes.
Their recommendation is to backup everything (bookmarks, settings), remove the snap, and install via apt or self-contained zip.
I tried using the snap, I really gave it an honest attempt, and it stinks. The final straw was when removing and reinstalling the snap deleted my Firefox profile. That was really unacceptable. Removing Firefox via apt doesn't wipe out ~/.mozilla
Snapd is now removed and pinned with negative priority on my Ubuntu systems so it will never be installed.
I'd like to find a PPA that builds vanilla Firefox but so far I've only come across ESR and Beta.
I've considered switching to Chromium over this nonsense though I'll try running tarball Firefox first, I didn't realize it could update itself. Maybe Librewolf is an option too.
I have to say that coming from Arch, it's a very Windowsy experience: lots of software has to be installed by searching for "install XYZ on Ubuntu", and following some instructions that involve scary-looking command lines that mess with cryptographic keys and add repos to my configuration, or, for a real Windows experience, install from a deb and hope you remember where you got it from when it needs an update.
I know the AUR is no more secure than that, but at least if someone makes a bogus package full of evil, it'll be flagged on that platform. If I install whatever from some random third-party repo, how will I ever know if it's gone bad?
Also, PKGBUILDs are just so easy.
[1] http://mpr.hunterwittenborn.com/
Ironically this is exactly the problem that snaps solve; what you describe is exactly why others complain about it.
>scary-looking command lines that mess with cryptographic keys
>for a real Windows experience, install from a deb and hope you remember where you got it from when it needs an update
Yeah I guess you didn't use Windows recently cause that never happens there
Strongly eyeing NixOS and patiently awaiting real work experience from a co-worker who already did the plunge.
In case you want some inspiration or to take an existing config and run, feel free to take a peek at or use mine: https://github.com/jakehamilton/config
The nix language is indigestible for me, so I eye Guix System but so far Guix does not have things I like/need so still on NixOS in a calm state: systems updated, automated, reproducible without thinking and babysitting them continuously.
I use fedora since long time and so far is quite stable without any non-sense
Honestly after that I never tried it again.
Currently running manjaro but really wanna give fedora a try cos seems people who use it swear by it.
In the same vein I installed openSuse Thumbleweed and Fedora; as I'm looking for a way out. I hope Fedora allows me to install all opensource packages without Flatpack or I also ditch them. BTW Fedora's F35 installer has a horrible partition configurator, worst experience in two decades of installing Linux.
But apparently I'm some bastard n00b that does not care about security enough! Can you imagine trying to access your files from your editor like you've been doing for decades? This guy doesn't get it!
Apparently flatpak et al have the same problems.
In my case, I'm not sure where to switch. I want easy of use, I don't really enjoy meddling with the OS. I use Xubuntu because it works better out of the box for me, but if I have to deal with this, I'm not interested.
Then for apps that have dotfile-type directories where you can put config files and other stuff, those simply exist in app-specific directories under .var in your home directory, so they're not difficult to find either.
firefox breaks if you overwrite its files. therefore installing "normall" via dpkg is bad while firefox is in use (especially on a multi user system). running via a container ensures that the existing running processes don't break while allowing you to upgrade and have any new instance get the new version.
there are reasons to dislike snap, but the usage of containers (even as simply a packaging mechanism, not any form of isolation) can improve user experience.
I also feels more confident trying new applications with snap. I know I can easily install different versions and uninstall them without breaking the system.
https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/19620...
> This was ultimately Mozilla's decision as part of the redistribution agreement. Mozilla could have just pulled it from being redistributed at all. This was the only way they were willing to allow Firefox to be redistributed as part of Ubuntu.
which seems at least odd (if not contradictory), given that Mozilla and Linux Mint have partnered to distribute Firefox as deb package, compare https://news.ycombinator.com/item?id=30777066 .
This is what made me switch off ubuntu.
When Ubuntu dropped 32-bit support, I relatively easily switched my old 32-bit netbook from Ubuntu to Debian (by changing the sources and some manual fiddling with packages). OTOH, I'm using Fedora on my work computer, just for the fun of it, and I'm really satisfied with it.