I have 91 flatpaks, and it is my primary way of getting apps. But the (not very shared) dependencies have been bothering me lately.
I was primarily drawn in because Gnome Software has a cool UI and because I wanted the magic of one-click installs. I heard a lot of things about Flatpak and gave it a try.
I have a relatively small 72GB BTRFS root partition with zstd:1 (lowest) enabled. I think disk compression helps with the Flatpak dependency mess, as I only have 60% disk usage currently.
Idk how much extra RAM my flatpaks use, but I don’t want 4 versions of the same dependency taking up space in my RAM. Thought about enabling zram to compensate for this. As different versions of the same library in RAM are easy to compress.
I don’t think this compression mentality I instinctively adopted is healthy. Make stuff reliable in expense of storage/ram -> compress storage/ram in expense of proc. power
Another thing is slow Flatpak downloads. I have a gigabit connection, and Arch mirrors generally work around 30MB/s with WiFi. Flatpak, on the other hand, hits at max. 5MB/s with its “CDN”
Overall, even though it’s kind of ugly, I absolutely love the “don’t think about it” mentality of flatpaks. It just works most of the time. I simply use the system package manager for programs that heavily interact with the system (like IDEs, management stuff, and so on)
I am interested in hearing your opinions.
If you have redundant runtimes then you have to push app developers to update their runtime. This problem will not go away by switching to native packages unless native packages and flatpak versions are not in sync.
This is why I’ve never liked the idea of flatpak, it really seems like the Windows way of doing things. It honestly still kind of surprises me that Linux people really wanted to download random binaries from non-trusted distributors that contain a copy of every library that software needs to run. wedontdothathere.jpg
Many modern programming languages like Rust and Go and Zig compile statically anyway, so don’t use any libraries. The whole “my distro supplies my libraries” model has been steadily losing relevance for years now. Flatpaks are just one more example of this.
Fedora Flatpaks are better in this regard. They are built entirely from Fedora rpms. When an rpm gets updated in the Fedora repos, rebuilding the flatpak will automatically pull in that updated rpm. And with flatpak’s deduplication feature, any reused vendored dependency should be perfectly deduplicated since the input is exactly the same (the rpm).
The problem just is that the repo is small, it’s affected by Fedora’s risk-averseness (so no codecs), and people don’t like them.
Exactly what I’m talking about. It reminds me of the time microsoft introduced memory compression to compensate for every application bringing it’s own DLLs
But I still think flatpak is superior to windows way of doing things because it actually has dependency management. I kinda like the idea of having multiple versions of the same library but I wish they did not come in big bundles (runtimes), but instead, came in small 1-2MB pieces.
download random binaries from non-trusted distributors that contain a copy of every library that software needs to run
This is overexaggeration. Flatpak, unlike places windows users get software from, is moderated, and flatpak (although chunky) has shared dependencies
I will never touch flatpak for this reason, I’d rather deal with compiling software myself and faffing around with dependency issues than have 8 copies of every system library sitting around.
I have tons of hard drive space and RAM. I don’t care. I’m not running my os on a old PC trying to get some more life out of it. And I’m not one of the people who wants RAM sitting empty I want it to load programs cache stuff all of that. Otherwise what is the point of you have it doing nothing.
Neigsendoig (my producer) and I started to shy away from Flatpaks. We’ve hated Snap already, and rather distro packages, third-party compiled packages and AppImages.
As someone who worked OS security after working build/release on Unix and Linux, don’t use flatpaks. The modicum of comfort you gain in brainless installs you lose far more in validation of package contents.
And brainless installs on Linux (yum install) is about the same via synaptic/etc. You’re not missing much.
You use arch and have flatpaks? I never liked them. They’ve always been a burden for me. The idea of flatpaks on Arch just never crosses my mind anymore. I actually prefer even appimages over them. At least appimages bring their own baggage with them. Once you’re done with an app, you just delete it and it’s gone. The only place I use flatpaks and don’t even mind them is on my Bazzite Steam console. Because I only installed a couple of them (Sober and protonplus) since it’s a 100% gaming console.
It also kind of takes its roots from my frustration with garbage in my home or leftover bullshit in my root
It’s not viable to ditch native packages 100% (like immutable distros). But a combination of two is pretty comfortable imo
But as I said, I am not comfortable with the way flatpak does some things
I’m pretty sure you can remove flatpaks just as easily as AppImages + you have the option to delete user data specific to that app. Kinda sounds like you get all the problems OP describes without a clean way to manage it all.
True, but you still have to visit more than one place to clean or have to run some commands to remove leftovers. There are those runtimes that you’ll have to remove when you remove flatpaks. Appimages are just one file and you’re good.