What is the point of Flatpak, AppImage, Snap, etc?

hypevhs@beehaw.org to Free and Open Source Software@beehaw.org – 47 points –

I don't understand what problem they are meant to solve. If you have a FOSS piece of software, you can install it via the package manager. Or the store, which is just a frontend for the package manager. I see that they are distribution-independent, but the distro maintainers likely already know what's compatible and what your system needs to install the software. You enjoy that benefit only through the package manager.

If your distro ships broken software because of dependency problems, you don't need a tool like Flatpak, you need a new distro.

43

You are viewing a single comment

Just a shot in the dark, but it sounds like you have never maintained software. If you have, then my apologies, but your experience must not have included much by way of dependency and version management. Dependencies and versions are a major source of headache for any software engineer and it’s a problem of our own making.

Having completely self-contained applications, while more bloated, makes maintenance and distribution exceedingly simpler and puts the burden of managing that solely on the developer of said application instead of burdening everyone down the line.

I remember when package managers didn’t exist. It was painful. This is the next step in the evolution of the Linux desktop that was mostly solved in Windows and effectively completely solved on macOS since some early 10.x version.

I would not call it a next step. Just another option. The big downsides include much larger on block storage size and worse yet much bigger memory foot print since your app cannot benefit from shared images. Worse system integration too.

In a world where block storage is huge and cheap and memory too maybe less important. I would not say it is without issues though. Maybe convenient but not optimal in a lot of ways.

Flatpak does try to account for storage size by using shared base images. The main problem is that some Flatpak apps don't update to the latest base, and some use different base images altogether, meaning most of the time it needs to have several bases anyway.

From my understanding, Flatpak is built on top of OSTree, which will automatically deduplicate files across different packages. That said, I’m not sure if this extends to downloading packages. The site claims that it does do “delta updates,” which would hopefully mean that it doesn’t download files that are already on the system, even if they’re part of another package.

I’m just going off what I read in the docs. Someone with more understanding of the system can clarify.

Don't know much about Linux, but looking to convert my EOL Asus C302 Chromebook to Linux, so trying to learn anywhere I can 😊

After reading all the comments for this post, if you're right about Flatpak de-duping, that would make a good portion of the arguments against moot.

Hopefully someone knowledgeable can step in and add some more info.

Incidentally, if anyone has a suggestion for a lightweight Linux distro that I can use on my Chromebook, any and all ideas are welcome 😁

If people want the Linux desktop to become more ubiquitous in homes, it better damn well be the next evolution. Someone’s grandmother isn’t going to get on the command line when apt inevitably decides to break.

The concept is not new, and Apple has had .app containers for a very long time that almost always just works. So clearly the concept has long been proven.

Perhaps flatpak, snap, appimage aren’t the final forms of this concept on Linux, but it’s a step toward making application packaging and distribution much more friendly for the common masses.

That Apple can get their own relatively narrow platforms to work really says very little. Shocking if they could not.

As far as home use, Linux works fine. Both my wife and father in law use it too and they are not technical. Cannot remember the last time I had an apt issue or any other issue.

As far as snaps being better. Not my experience. I will take a native package any day over this other stuff. Just more integrated and reliable.