Although I have been using linux for going on 20 years, mainly through the more popular flavours of mint, using the GUI for ease. Many times on this site I read and follow topics that discuss flatpak or systemd being in the most part not a great idea but more and more versions appear to be going down these roads.
What is right or wrong with using either ?
Why choose one over another ?
What do they actually do for better or worse ?
In the repository of mint some apps are offered in either with or without I am never sure which I want or need so suspect I will have a mix on my own system.
Positive or negative ?
I do know they are not the same thing but perhaps a more in depth look would help me and others.
Many Ubuntu users seem to swear at (as opposed to swear by) the use of systemd (Snaps) for a variety of reasons but Flatpak often provides better and more up-to-date solutions than deb packages and are easier to install/configure than Snaps and AppImages particularly when used in conjunction with Flatseal to review and modify permissions (often the offending issue with Snaps).
I use quite a number of Flatpak packages on my Debian 12 system and they never seem to cause any issues.
I would add to the Neville’s great list
Flatpak
cons:
• you need to update them separately. The system’s package manager doesn’t know how to update them.
Flatpak has one other advantage … it has a mechanism to de-duplicate copies of libraries shared by multiple paks. That reduces the storage requirement.
Features might be added, shuffled around, or removed at will.
People cannot develop a competing product.
Developers wishing to develop an application or - god forbid - system component against systemd have to basically pray the features they’re using are still there a few versions down the road.
1.5mln loc. You expect that to be bugfree? Hint: it isn’t by a long shot.
It causes mysterious issues for people.
The mentality of the developers is not helpful.
Bloatware.
Flatpak (the exact same arguments go for Snap and AppImage):
Static binaries achieve the exact same thing (for execution, that is), without all the overhead.
It’s not a simple solution.
It does provide sandboxing, which is convenient in some cases.
There are alternative init systems, but they are difficult to develop because they require changes to all service packages… ie any package that requires a daemon has to be modified to suit the init system.
There are also problems with packages that use some of the non-init functions of systemd.
I like to play the Solitaire game, and since I use Gentoo, most of the time, the Solitaire game is only available, by using Flatpak. When the Flatpak Solitaire package is downloaded and installed, it will also download and install the dependencies needed for the Solitaire game. I find it plays and runs quite well!!!
What about docker or podman containers.?
I have never thought about how you update containers.
I always regarded them as a sort of frozen working system, isolated from everything.
When I first use a particular app, I pull down the latest container version. If that works, I normally stick with that version unless there is a security or bug fix released. Then I download a newer version.
For work we specify the version, so we aren’t surprised by something not working after an update. We update when we say update.
Ubuntu people say that snaps are updated by the store in the background, and the updater manager says that it updates the snaps.
Well, that’s not my experience. I’ve seen the updater manager mention this, and then go to the store and see that there were snaps that weren’t updated. I prefer to update every Saturday, via the command line, and before restarting Ubuntu I update the snaps with “sudo snap refresh”.