Certainly a fan, and I don’t understand the hate towards it.
Flatpaks are my preferred way of installing Linux apps, unless it is a system package, or something that genuinely requires extensive permissions like a VPN client, or something many other apps depend on like Wine.
The commonly cited issues with Flatpaks are:
Performance. Honestly, do you even care if your Pomodoro timer app takes up 1 more megabyte of RAM? Do you actually notice?
Bloat. Oh, yes, an app now takes 20 MB instead of 10 MB. Again, does anybody care?
Slower and larger updates. Could be an issue for someone on a metered traffic, or with very little time to do updates. Flatpaks update in the background, though, and you typically won’t notice the difference unless you need something newest now (in which case you’ll have to wait an extra minute)
Having to check permissions. This is a feature, not a bug. For common proponents of privacy and security, Linuxheads grew insanely comfortable granting literally every maintainer full access to their system. Flatpaks intentionally limit apps functionality to what is allowed, and if in some case defaults aren’t good for your use case - just toggle a switch in Flatseal, c’mon, you don’t need any expertise to change it.
What you gain for it? Everything.
Full control over app’s permissions. Your mail client doesn’t need full system permissions, and neither do your messengers. Hell, even your backup client only needs to access what it backs up.
All dependencies built in. You’ll never have to face dependency hell, ever, no matter what. And you can be absolutely sure the app is fully featured and you won’t have to look for missing nonessential dependencies.
Fully distro-agnostic. If something works on my EndeavourOS, it will work on my OpenSUSE Slowroll, and on my Debian 12. And it will be exactly the same thing, same version, same features. It’s beautiful.
Stability. Flatpaks are sandboxed, so they don’t affect your system and cannot harm it in any way. This is why immutable distros feature Flatpaks as the main application source. Using them with mutable distributions will also greatly enhance stability.
Alternatives?
AppImages don’t need an installation, so they are nice to see what the program is about. But for other uses, they are garbage-tier. Somehow they manage both not to integrate with the system and not be sandboxed, you need manual intervention or additional tools to at least update them/add to application menu, and ultimately, they depend on one file somewhere. This is extremely unreliable and one should likely never use AppImages for anything but “use and delete”.
Snaps…aside from all the controversy about Snap Store being proprietary and Ubuntu shoving snaps down people’s throats, they were just never originally developed with desktop applications in mind. As a result, Snaps are commonly so much slower and bulkier that it actually starts getting very noticeable. Permissions are also way less detailed, meaning you can’t set apps up with minimum permissions for your use case.
The few things I don’t like about flatpaks (which become a problem on atomic distros that use almost all flatpak by design):
Some types of embedded development is essentially impossible with flatpaks. Try getting the J-link software connected with nrftools and then everything linked to VScodium/codeoss
Digital signing simply doesn’t work, won’t work for the foreseeable future, and is not planned to get working,
Flatpaks sometimes have bugs for no reasons when their package-manager counterparts don’t (e.g. in KiCAD 8.0, the upper 20% or so of dialog boxes were unclickable with the mouse, but I could select and modify them with the keyboard, only the flatpak version)
The status on whether it is still being actively developed or not (at least I hear a fair amount of drama surrounding it)
But besides those small things, it seem great to me.
I’ve been working on Linux for 15 years now and I perfectly remember the origin of many concepts. If you look at it through time, what would it be like:
We can build applications with external dependencies or a single binary, what should we choose?
The community is abandoning a single binary due to the increased weight of applications and memory consumption and libraries problems
Dependency hell is coming
…
Snap, flatpack, appimage and other strange solutions are inventing something, which are essentially a single binary, but with an overlay (if the developer has hands from the right place, which is often not the case)
Someone on lemmy says that he literally doesn’t care if the application is built in a single binary, consumes extra memory and have libraries problems. Just close all permissions for that application…
Well, all I can say about this is just assemble a single binary for all applications, stop doing nonsense with a flatpack/snap/etc.
UPD: or if you really want to break all the conventions, just use nixos. You don’t need snap/flatpack/etc.
Provided that flatpack has a common parent container, which is not always the case. More precisely, it almost never does. Because someone updates flatpack to new versions of the parent containers, and someone else does not.
runtime have versions too. If one runtime version use only one flatpack than exactly same as just static linking binary. Flatpack have just docker layeredfs and firejail in base.
In the initial stage of shared library support, everything was exactly the same. Let’s look at it in 5 years… When some soft will archived and die, some stop maintaining, some new crated and brakes old dependencies…
Flatpaks, appimages, snaps, etc: why download dependencies once when you can download them every time and bloat your system? Also, heaving to list installed flatpaks and run them is dumb too, why aren’t they proper executables? “flatpak run com.thisIsDumb.fuckinEh” instead of just ./fuckinEh
No thanks. I’ll stick to repos and manually compiling software before I seek out a flatpak or the like.
This shit is why hobbies and things should be gatekept. Just look at how shit PC design is these days. Now they’re coming after the OS.
As I said, dependencies typically don’t take that much space. We’re not in the '80s, I can spare some megabytes to ensure my system runs smoothly and is managed well.
As per naming, I agree, but barely anyone uses command line to install Flatpaks, as they are primarily meant for desktop use. In GUI, Flatpaks are shown as any other package, and all it takes is to push “Install” button.
If you want to enjoy your chad geeky Linux, you still can. Go for CachyOS, or anything more obscure, never to use Flatpaks again. At the same time, let others use what is good and convenient to them.
Do all laptops users have this option? Also you keep saying megabytes when it’s never just a few megabytes. It downloads atleast a few gbs worth of data just for one gui app.
Have what option? Flatpaks are supported on any Linux system, it doesn’t matter what distro or hardware.
If it’s not present in you distributions’ app store, you can either enable it somewhere or download another app manager like Discover, GNOME Software, or pamac if you’re on Arch.
If installation of some app incurs a few gbs of downloads, it is likely that your system updates packages alongside installing your app. Typical Flatpak app takes 10-150 megabytes.
Certainly a fan, and I don’t understand the hate towards it.
Flatpaks are my preferred way of installing Linux apps, unless it is a system package, or something that genuinely requires extensive permissions like a VPN client, or something many other apps depend on like Wine.
The commonly cited issues with Flatpaks are:
What you gain for it? Everything.
Alternatives?
AppImages don’t need an installation, so they are nice to see what the program is about. But for other uses, they are garbage-tier. Somehow they manage both not to integrate with the system and not be sandboxed, you need manual intervention or additional tools to at least update them/add to application menu, and ultimately, they depend on one file somewhere. This is extremely unreliable and one should likely never use AppImages for anything but “use and delete”.
Snaps…aside from all the controversy about Snap Store being proprietary and Ubuntu shoving snaps down people’s throats, they were just never originally developed with desktop applications in mind. As a result, Snaps are commonly so much slower and bulkier that it actually starts getting very noticeable. Permissions are also way less detailed, meaning you can’t set apps up with minimum permissions for your use case.
This all leaves us with one King:
And it is Flatpak.
The few things I don’t like about flatpaks (which become a problem on atomic distros that use almost all flatpak by design):
Some types of embedded development is essentially impossible with flatpaks. Try getting the J-link software connected with nrftools and then everything linked to VScodium/codeoss
Digital signing simply doesn’t work, won’t work for the foreseeable future, and is not planned to get working,
Flatpaks sometimes have bugs for no reasons when their package-manager counterparts don’t (e.g. in KiCAD 8.0, the upper 20% or so of dialog boxes were unclickable with the mouse, but I could select and modify them with the keyboard, only the flatpak version)
The status on whether it is still being actively developed or not (at least I hear a fair amount of drama surrounding it)
But besides those small things, it seem great to me.
I’ve been working on Linux for 15 years now and I perfectly remember the origin of many concepts. If you look at it through time, what would it be like:
Well, all I can say about this is just assemble a single binary for all applications, stop doing nonsense with a flatpack/snap/etc.
UPD: or if you really want to break all the conventions, just use nixos. You don’t need snap/flatpack/etc.
Flatpak is not single binary, Flatpaks have shared runtime (For example Freedesktop, GNOME, KDE runtimes)
Provided that flatpack has a common parent container, which is not always the case. More precisely, it almost never does. Because someone updates flatpack to new versions of the parent containers, and someone else does not.
I don’t know any flatpak in my system that don’t use runtime (I have around 50 flatpak apps installed), or am I misunderstanding your point
runtime have versions too. If one runtime version use only one flatpack than exactly same as just static linking binary. Flatpack have just docker layeredfs and firejail in base.
id: org.gnome.Dictionary runtime: org.gnome.Platform runtime-version: '45' <- here sdk: org.gnome.Sdk command: gnome-dictionaryI see problem in that only in unmaintained apps (like org.gnome.Dictionary), I have only GNOME 47 & 48 for example and both of them still updating
In the initial stage of shared library support, everything was exactly the same. Let’s look at it in 5 years… When some soft will archived and die, some stop maintaining, some new crated and brakes old dependencies…
Well a 10mb app could take 20 but what about a 1gb one?
Flatpaks, appimages, snaps, etc: why download dependencies once when you can download them every time and bloat your system? Also, heaving to list installed flatpaks and run them is dumb too, why aren’t they proper executables? “flatpak run com.thisIsDumb.fuckinEh” instead of just ./fuckinEh
No thanks. I’ll stick to repos and manually compiling software before I seek out a flatpak or the like.
This shit is why hobbies and things should be gatekept. Just look at how shit PC design is these days. Now they’re coming after the OS.
As I said, dependencies typically don’t take that much space. We’re not in the '80s, I can spare some megabytes to ensure my system runs smoothly and is managed well.
As per naming, I agree, but barely anyone uses command line to install Flatpaks, as they are primarily meant for desktop use. In GUI, Flatpaks are shown as any other package, and all it takes is to push “Install” button.
If you want to enjoy your chad geeky Linux, you still can. Go for CachyOS, or anything more obscure, never to use Flatpaks again. At the same time, let others use what is good and convenient to them.
Do all laptops users have this option? Also you keep saying megabytes when it’s never just a few megabytes. It downloads atleast a few gbs worth of data just for one gui app.
Have what option? Flatpaks are supported on any Linux system, it doesn’t matter what distro or hardware.
If it’s not present in you distributions’ app store, you can either enable it somewhere or download another app manager like Discover, GNOME Software, or pamac if you’re on Arch.
If installation of some app incurs a few gbs of downloads, it is likely that your system updates packages alongside installing your app. Typical Flatpak app takes 10-150 megabytes.