this post was submitted on 30 Jun 2023
46 points (96.0% liked)

Linux

48330 readers
638 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I know snap is fairly unpopular in the Linux community, and I've seen mixed responses regarding Flatpak. I wanted to know, what's the general opinion of people in this community regarding this 2 package managers?

top 45 comments
sorted by: hot top controversial new old
[–] [email protected] 19 points 1 year ago* (last edited 1 year ago) (1 children)

To quickly introduce myself, I'm the main author of Paperwork. I've packaged Paperwork in various ways, and many people have packaged it in various distributions as well.

I'm fine with Flatpak. In my opinion, it has its use cases. I find complementary to other existing methods (distribution packages, AppImage, ...)

However I'm not fine with Snap. I haven't used it much, but my understanding is that it focuses on Canonical servers. You can change its configuration to use other servers, but it defaults to Canonical servers (and we all know most users will never change default settings). To me, this is a slipping slope towards proprietary services/software.

Moreover, I'm really annoyed by Canonical pushing Snap by default in Ubuntu (Firefox, Chrome, etc are packaged only using Snap now; the APT packages install the Snap packages). It doesn't bring anything to the users. Those packages could have been as well-packaged using APT (see the repositories *-updates in Debian for instance).

[–] [email protected] 4 points 1 year ago (1 children)

PS: nice software your Paperwork. I hope in the future you'll add support for djvu format – most of my documents are in that format (it saves a lot of memory for scanned documents, compared to pdf).

[–] [email protected] 4 points 1 year ago (1 children)

That's something I would like to do someday. Unfortunately, last time I checked, libraries for reading DjVu files exist and are OK, but not for writing them. Last time I checked, most programs I found that write DjVu files actually don't use the DjVuLibre library. They actually run the DjVuLibre commands.

[–] [email protected] 1 points 1 year ago

Great that it's in the todo-list anyway. I usually use the Any2DjVu server for converting and OCR-ing documents in pdf format. The djvu file is typically 20% size of the original pdf, and the OCR is usually better too. I'll check on your project regularly for updates :)

[–] [email protected] 16 points 1 year ago

Thanks to Flatpak, I can have basically careless OS updates with Fedora Silverblue, so I'm very happy with them. I also appreciate the fact that every distro that can run Flatpak automatically has a wide range of software available to it.

I'm sure Snaps have similar advantages, but I haven't worked with them much. I don't really like that you can only publish Snaps through Canonical though, so in that sense I hope Flatpak wins.

[–] [email protected] 11 points 1 year ago

First of all, I think an idea of package management separated from a system environment is generally good for desktop usage. And don't like and the idea to place all existing application software in distro repositories. But implementations are far from ideal. So I list those bellow from worse to better.

  1. AppImage. It highly relies on the environment doesn't have native sandboxing, and promotes bad practices like building apps with old libraries.

  2. Snap. Snap is mostly fine but relies only on AppArmor for confinement, has performance issues for a long time without significant progress. It promotes a proprietary app store. Relies on Ubuntu infrastructure. Good: snap store support signed packages and more friendly to developers.

  3. Flatpak. App start time is near to native. It has stronger sanboxing but with many holes for compatibility. It true distro-independent as well as popular runtimes are also distro-independent. Bad: Flathub doesn't support signed applications. Sandboxing and permissions rely on hacks and tricks which are far from good design. Development is slow but it is true for the mentioned above as well.

With that, I am more open to new alternatives, especially if started from a system point of view rather than from a position of distro-independent package managers like Google did with Android. For example, sandboxing can rely on users separation and work on various operating systems not only with Linux kernel.

[–] [email protected] 11 points 1 year ago* (last edited 1 year ago)

Flatpak made my life much easier. It solves so many problems that the Linux ecosystem had. "Package once, use everywhere" is great.

Snap could have been similarly good, but I think Canonical made some mistakes.

I don't hate Snap. I think a bit of friendly competition is good for both Snap and Flatpak.

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago)

It's bloated... but at least now even my grandmother can use linux thanks to it. :^)

[–] [email protected] 7 points 1 year ago

On a distro like Fedora that doesn't ship non-free codecs, flatpaks makes it a lot simpler. So I really like it for stuff like Firefox and media players.

[–] [email protected] 6 points 1 year ago

I've come around to liking Flatpak.

  • I don't have to deal with dependency hell I sometimes get with third party packages (AUR/PPA)
  • I don't have to worry about make dependencies
  • I don't have to deal with clutter in my home directory, they are mostly encapsulated in ~/.var and easy to clean, discover even asks me. Especially if I try the app for 10 minutes and device it wasn't for me. Espexially for apps that don't follow XDG base directory specifications (which is too many, but that's another post)
  • I get some (imperfect) sandboxing and control over what an app can access, especially with proprietary things like Discord …

Anything I need to get into a desktop environment should come from the distribution's repositories and package manager. For user applications, Flatpak is great.

[–] [email protected] 6 points 1 year ago

As an out-of-band software delivery method and supply chain that

  • breaks single source of truth
  • defeats/breaks simple enterprise-style (HOST-RESOURCES-MIB::hrSWInstalledName) inventory
  • enforces/uses alternate dependencies

It has ab-sol-ute-ly no value to me, and only security risk after security risk.

Apologies to those who've spent time on them, but I'm happy to not see them as their value within the scope of my workday fell off a cliff in about 1996 - maybe before they even existed - with the advent of something better.

Again, sorry. I'm only speaking as someone who used to manage OS security on Unix and has spent 20 years in the leviathan-enterprise space as rehab. Your mileage with glitter may vary.

[–] [email protected] 6 points 1 year ago

I always prefer native packages over containerized. But I'm glad they exist, because every now and then a native package won't work. I don't agree with most people that say Linux needs to be streamlined: less distros, less packaging systems, etc. Personally, I like when I have options. I prefer flatpak over snaps and appimages, but ideally I'd like to have all of them available just in case. When comparing snaps to flatpaks, in my personal experience, flatpaks just integrate better. But they're not THAT much better than snaps, so I could see myself using either, it's just that so far I haven't run into a situation where I'd need to use a snap. There is one downside to flatpaks though, and it's their names. As DT pointed out in his video, it can be pretty annoying to run them through terminal. But I hate the fact that Mint removed snap and Ubuntu removed flatpaks. I don't think we're achieving anything with this "war of formats". Let people use both and decide for themselves.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (1 children)

pretty unpopular opinion i believe, but i loathe them. they feel like installing apps from the windows store, but worse. i use them on steam deck and my laptop, but they often fail to launch with no feedback[^1], won't accept drag&dropped files, store their dotfiles in weird places, take up much more disc space (and therefore take literally almost 10x as long to download), won't inherit the theme (i think because plasma stores the gtk theme in a non-standard place), etc. they feel like they've been designed to flout what os developers have built up over many decades and are just a struggle to use.

[^1]: on steam deck particularly (so i know it's not a configuration i've screwed up) no flatpaks will launch unless i launch them twice. even after that, there's a long delay (~1 minute) and then two instances launch. i know this sounds like i should just wait until the first one launches, but that doesn't work

[–] [email protected] 1 points 1 year ago (1 children)

The Flatpak theming issue is really annoying, yeah. There’s a rather limited pool of GTK themes to choose from in Flathub, but as long as you’re running one of those themes in your DE (assuming GNOME or other GTK-based), themes will inherit. Can’t speak to KDE as I haven’t used Plasma as primary.

Other than that, Flatpak has been great. I use it reasonably heavily on a laptop that’s slower than a Steam Deck (Ryzen 5 3500u, 8GB DDR4, 1TB Samsung 970 Evo Plus) and haven’t run into performance issues on multiple distros — EndeavourOS, Pop!_OS, LMDE, Fedora, an early version of Vanilla OS, and most recently Debian 12. On my desktop I don’t feel a performance difference between Flatpak and native.

[–] [email protected] 3 points 1 year ago

The steam deck uses KDE, so the most popular Linux desktop device is going to be showcasing what flatpak is(n't) capable of.

This is largely a problem thanks to the GNOME developers though, refusing to play nicely with anyone else and acting like their way is THE way.

[–] [email protected] 5 points 1 year ago

Snaps still don't seem to have network storage permissions when I tried ubuntu a week ago, so they suck for me. I put just about everything on my NFS.

A lot of the flatpaks for programs I actually use are third party and not maintained by the actual developer, have missing or enweirdened features because of the sandboxing, and are a removed to run from command line. So I try to avoid those too.

[–] [email protected] 5 points 1 year ago

I like Flatpak in general and it might be the future(tm) but I hate how huge the packages are

[–] [email protected] 4 points 1 year ago

I use Flatpaks and they're pretty great specifically for gui applications that don't need any kind of deep integration with the system. For terminal applications or for applications that do need system integration, they're not quite ready yet.

I've never tried snaps, but I hear almost exclusively bad things about them, so I'm not really interested in trying them either.

[–] [email protected] 4 points 1 year ago

Don't really like Snap since it uses my system ram whenever I boot up my os.

As for Flatpak, its been a great experience for me so far.

[–] [email protected] 4 points 1 year ago

For the most part, I'd rather have native packages. I'm not deeply philosophically opposed to secondary packaging systems, and only mildly opposed to "ship the whole dependency tree in an archive" software distribution methods (lookin' at you NextStep/OS X style bundles), and see their potential especially on platforms with no/bad native package managers or to bring in specific software that would pose a compatibility problem for the host system... but they never seem to work nearly as well as native packages, and the two big players on Linux have problems.

As far as I'm concerned, they're just taking the old last-ditch practice of "I have this piece of recalcitrant software that is incompatible with the rest of my system, so I'll throw it in /opt with its entire dependency tree," replacing opt with a bunch of bind mounts, and doing so with varying degrees of additional tooling.

The sandboxing is a nice idea, but it seems like in practice the models on both snap and flatpack are simultaneously restrictive in ways that make them annoying-to-unusable for many tasks, and too sloppy to provide reliable security guarantees.

They make debugging problems harder because you can't check functionality from another program because they likely don't share libs. ldd is a lot easier than spelunking around with eg. flatpak list --app --columns=application,runtime until you find a "peer" to test.

If I need a one-off piece of software that is a compatibility nuisance on my host distro (but not so much of a nuisance it needs to go in a container or VM, which is a pretty narrow window), I'll usually reach for an AppImage because unlike the other two, they're actually fairly standalone and don't involve a big invasive runtime/tooling system.

The Immutable-core OSes that depend on them are kind of the same way at the moment. Fundamentally a pretty neat idea, but so far I find them super frustrating in practice. Nix is ...different... to work with, but is likely a more elegant scheme to solve the same class of problems.

[–] [email protected] 4 points 1 year ago

I'm trying to use native package as much as possible, then tar.gz package, .appimage, compiling from source on that order. I only use flatpak as last resort.

[–] [email protected] 4 points 1 year ago

My first experience with snap was rather frustrating.

The application kept failing to read the config file I provided without telling me why. After reading up it turns out snap can only read from the users home directory (and mounts, I think).

Fine, frustrating but I vaguely understand it. So I move my config to the home directory. Still the same issue with no explanation.

Finally it turns out it can't read dot files or dot directories even inside the home directory.

Again, that's understandable but it was an incredibly frustrating, unintuitive experience. Vastly different than the Linux experience I was accustomed to.

[–] [email protected] 4 points 1 year ago

I like the user experience of two clicks to install and run, it's feels very smooth.

I had some bugs with the CLI when developing Flatpak applications, but I guess that will be resolved when it gets more refined. I also welcome a central "linux appstore" and more sandboxing features, so my view on Flatpak is that I like it more than most other solutions.

[–] [email protected] 3 points 1 year ago

I think its a nice alternative to developers to offer software that is not available on your package manager, but having a distro offer multiple different ways of installing a package is not a good idea, I'm talking about ubuntu of course, as a user I just want to apt-get update/upgrade and be sure my system is up to date, snap undermines that because I'm not sure anymore. also I don't understand why I need to close the app I'm using to update it with snap, if the app is containerized I should be able to install multiple versions without affecting each other.

[–] [email protected] 3 points 1 year ago

If an app shouldn't affect the rest of my system i don't mind it as a flatpak. I like that I can use the bleeding edge of an app without system breaking dependencies. I also appreciate the sandbox that flatpaks seem to be contained in. If something is meant to be a part of my system then it needs to be native.

My experience with snaps have not been pleasant, patricularly on arm devices.

[–] [email protected] 3 points 1 year ago

I'm on Kinoite so I love flatpaks obviously. I will never integrate another application into my system again after going immutable. For everything else I setup a toolbox.

[–] wolf 3 points 1 year ago

Seriously, I really wonder if the opinion about Snap/Flatpak is really that strong outside of the echo chambers of the Linux online communities.

Concerning Snap, I saw people upgrade from Ubuntu 18.04 to 22.04 w/o even noticing it. (AFAIK that was after Canonical invested some time in the performance problems.) Of course, I can also understand Ubuntu users which where unhappy about performance degradations with Snap packages.

I run openSUSE MicroOS/Aeon on my entertainment system with Flatpaks, and for my use case, flatpaks / immutable Linux distributions are brilliant: Automatic updates on reboot and I didn't have to bother with anything after the first time setup.

On my work desktops I run Debian and I am quite happy for some applications packaged as Flatpak, which would be hard to get in updated versions otherwise. At the same time, development environments in Flatpak are - at this moment - more trouble to me than it is worth it (integrating with toolchains/build systems and the operating system).

In general, my opinion is that Snaps/Flatpak provide a great solution distributing software in the Linux ecosystem and I would prefer, if distributions focus more on their core operating system instead of the redundant work of packaging the same software again and again and again. Of course, Snaps/Flatpaks will always have some drawbacks compared to a package integrated into your system (a little bit more disk space and perhaps a little bit more memory). OTOH a lot of problems we see now will hopefully be solved in the short/long run (theme integration, sandboxing, integration in the rest of the system).

The best thing that could possibly happen is, that the maintainers of several distributions which do redundant work team up on the flatpak packages and make them really awesome.

Looking really forward how things will develop in the next few years, and I especially look forward how openSUSE Aeon will develop. Linux is getting interesting again. ;-)

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

I use both on gentoo for some obscure or proprietary stuff that is not packaged in portage, like filebot, authy desktop, discord, steam and foobar2000 (including wine in 1 bundle to avoid dependencies and switching all portage packages to 32bit abi). It works well and opens me up to loads of stuff. It's freedom in some way.

Snap or flatpak makes no difference to me, they're just different backends for kde discover

[–] [email protected] 2 points 1 year ago

I use Flatpak and AppImages mostly. I am using Debian, but sometimes an app is just to old for me, and than I use a flatpak. For testing and temp. use I use AppImages. If more people around me would use Linux I could use AppImages as mobile apps to carry around.

[–] [email protected] 2 points 1 year ago

my mirst contact with snap was while trying to instal lubuntu to some old laptop, and was confused why Firefox too minutes to start.

If you want me to use something - better make it better than original thing. This was terrible experience, I needed some time to disable it and find a way to installed real package.

And don't hide it from me. And let me choose.

So I don't like it, I don't care about technical advantages, if there are any, I will not use it because someone forced it upon me. o can not support such behavior.

Flatpaks are too big. And most packages I wanted have serious bugs. And I never found how to change font size in those apps.

AppImage is great, I use it for gimp, inkscape, libreoffice and some other software packages I rarely use. but they don't have official repository, so I will not take binaries from some random people on the net. nor use google as my package manager.

[–] [email protected] 2 points 1 year ago

I tend to use native packages. However, I find Flatpak very useful to avoid large list of dependencies, specially when Wine is involved.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

I've been known to write half-assed native packages for the odd piece of software, and just plain give up on some others, rather than touch Snap or Flatpak. I simply don't like the concept. (As with many other things, I won't stop anyone else from using it, though.)

[–] [email protected] 2 points 1 year ago

I'm not super familiar with the details of either (as I've gotten so used to the AUR having everything I might want), but I can say with some confidence that snap was rolled out in a way that doesn't do it any favors.

I have an old laptop that I occasionally boot into to do some stuff, but not super often. After an update, it appeared as though Firefox had forgotten everything; I wasn't logged in, default start page, all settings reset, etc. I was super confused and mildly annoyed, but I set everything back up anyways. Then a bit later I ran Firefox again and it opened to what it was before the update??? Then I realized there were two installs, one apt and the other snap, and the latter was installed without my permission (or knowledge, maybe apt said in one of its 10k lines it spits out that 'btw here's a snap package' that I was somehow supposed to notice).

I find containerized packages really nice for things that are very dependant on how the system is setup but are unlikely to get updated if that system changes (either by me not updating it or it just going unmaintained). Firefox is not that though.

[–] [email protected] 2 points 1 year ago

I like having options, but I wished they were better. Snap has been nothing but trouble for me, I had Authy break on me for weeks until I found that it couldn't handle a symlink in my home directory. Flatpaks just take forever to install and update, and it sucks that there's weird sharp edges around flatpaks permissions that cause some apps to break. App Image have been pretty okay, especially when you have that integrator tool, just would be nice if they could update themselves.

IDK. I kinda miss PPAs being the norm.

[–] [email protected] 1 points 1 year ago

I haven't had to use them. The existing set of Deb packages is too vast to exhaust. I don't have problems with misplaced UI as I always just use xfce.

[–] [email protected] 1 points 1 year ago

I like them, i use debian so for programs where i want the latest version while still maintaining my stable debian base i just install the flatpak. Best of both worlds to me. Additionally theres some software thats just packaged better in a flatpak like logseq. I do however try to use flatpaks as little as possible, native apps are always quicker but this may change one day.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

I like Flatpaks for running proprietary software (Slack, Discord, Spotify) because I can use Flatseal to lock down permissions for each app.

I also agree with someone else that said Flatpaks don't really integrate well when they need deep system integration.

I really like that Flathub now has a verified section (as opposed to some random person packaging the application).

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

I'm fine with Flatpak (and also AppImages if a Flatpak isn't available). As for Snaps, I don't like some of Canonical's decisions like apt installing the Firefox Snap instead of a deb package, and I think the user experience when using Flatpaks is better overall.

This doesn't mean Flatpaks are perfect for me yet, they just work better than their alternatives.

[–] [email protected] 1 points 1 year ago

Every snap i've ever downloaded has been ridiculously slow

[–] [email protected] 1 points 1 year ago

Flatpak's the only one I've had good experiences with. Tangentially related, but I especially dislike AppImages. I'm not a fan of how bulky installing various flatpaks ends up being and use native packages or the AUR usually, but beyond that they're really convenient for non-critical applications that otherwise would mesh poorly with my distro or aren't available there. Friend of mine tells me it's also a nice system to package Windows applications/games with a preconfigured Wine version.

[–] [email protected] 1 points 1 year ago

I like Snaps on my server, not on my desktop. Flatpaks are fine. I use them for stuff I wouldn't compile myself anyway (mainly proprietary binaries) but I prefer compiling my own packages where I can.

[–] [email protected] 1 points 1 year ago

Flatpak is fantastic. I think containerization is definitely the future of Linux app distribution, because the security and portability are so much better than native packages. Flatpak is the best implementation of this concept IMO, because it has a robust permission management system, is completely open unlike snap, and is performant with fast load times, solid deduplication of dependencies, and no garbage loopback devices

[–] [email protected] 0 points 1 year ago

In my experience, snaps are better for servers, and flatpaks are better for desktops.

I haven't used snaps for a couple years, so they may have fixed this, but I've found flatpaks have less issues interacting with peripherals that aren't mice/keyboards without fenagling with app permissions. A number of snap apps just wouldn't work without disabling containment entirely (aka "classic").

Flatpak permissions can be manipulated from system settings in Plasma, and there's also Flatseal. I am not aware of an equivalent for snaps; doesn't mean it doesn't exist, I haven't kept up with what's available for snap for some time.

load more comments
view more: next ›