Flatpak -- It's not without it's own issues, of course, but it does the job. I'm not fan of how snaps are designed, and I don't think canonical is trustworthy enough to run a packaging format. Appimages are really just not good for widespread adoption. They do what they are designed to do well, but I don't think it's wise to use them as a main package format.
Linux
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
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
Flatpacks give me the least trouble so I guess those. All though appimages seem alright too. Snaps however seem to never want to install. I like the idea of easy one click installs for every distro but I think we are a few years away from that.
As far as I know, Flatpaks have the best foundation currently, there are a number of issues, but they are fixable and not entirely by design. And with Fedora Silverblue/Kinoite and OpenSUSE MicroOS you can really see how native debs/rpms/whatever isn't really that good of an idea for the average user and Flatpak is a solution to that.
Appimages at a glance seems like a perfect solution for apps that for some reason or another needs to be kept outdated. But there is (was?) an issue of it not really bundling everything it needs, it looks and behaves as it is portable, but as far as I'm aware, it really isn't.
And then there's Snap. Yeah, that one is just weird, it honestly just doesn't feel like a proper solution to any of the problems it tries to fix.
I prefer flatpacks. There's nothing wrong per se about snaps, it's just that they are kinda slow, and Canonical is untrustworthy.
Appimages are to be avoided, imo. They are no better than downloading random crap like on Windows.
Well to be fair you can also download random flatpacks or debs or what from a website
For me it's Flatpaks at the moment. Adhering to FOSS means that I try to avoid Snap. AppImages are pretty good, since it's just an executable (and I think there's an AppImage updater as well?), but Flatpak is preferred for me since I like the idea of having containerised systems because it's easily manageable under this sort of central manager, i.e. Flatpak. I typically just install everything using Flatpak and update through that.
Flatpaks because their updating works (compared to my experience with Appimages) and the Apps starting instantly (compared to my limited experience with snaps). But sadly, a lot of production software doesn't want to support either of this package formats? I haven't seen support from Davinci Resolve or Mari, as an example.
Appimages could've been great if they had a store front like Flatpak, so while I do not always prefer Flatpak (because of how big the first download is) I use it the most.
there is a store for them called appimage pool which is written in flutter and its also an appimage itself. https://appimage.github.io/AppImagePool/
Wow, thank you for this.
Appimages are nice, self-contained apps and I do like that they're super simple to install and run. Downside is that they're often a bit bigger in size and not all apps can be packaged as appimages. Oh and the guy who runs many appimage repos is a dick.
Snaps have good security, OS-integration (on Ubuntu at least) and can run CLI apps well. Downsides are that Canonical controls the technology and repositories, which end users may enjoy because higher curation of apps, but the system is less open and reliant on Ubuntu for its existence.
Flatpak imo is the best compromise. It's an open standard which works well across various distros without hassle. Downsides are that it's not super integrated into your OS very well and it's larger than a native app. For one, I have a couple flatpak apps that don't respect my system's themes yet.
That being said, these are issues being worked on by flatpak, and being worked on openly! I prefer to go with Flatpaks where I can, but AUR and Pacman when those aren't available. If I only need an app to do one thing and then can discard it (ie. flashing a USB with balena etcher) appimages are nice because they don't leave an impact on the host system.
None of the above. Native debs/rpms/whatever for desktops, docker images for servers.
Flatpak and Appimages. Flatpaks are the best solution IMO, just better than snaps in about every setting except servers. Appimages are great simply because of their easy portability, just being a single executable. I like having GUI apps in Flatpaks because it separates the updates for those applications from my package manager.
IME Appimages often don’t work cause they don’t actually bundle everything they need (not sure if this is a fault of application developers, or some limitation). When they do work I actually prefer them to Flatpaks, which are honestly too complex IMO.
Snap kinda sucks
AppImage is a nice idea, and avoids some of the performance overheads from containerised systems, but lacks a reasonable self update mechanism, lacks code signing and the desktop integration (having icons show up in the start menu) is poorly implemented.
Snap is essentially a Canonical-proprietary apt replacement with some very serious drawbacks around performance and desktop integration (themes).
Flatpak has some drawbacks but it largely achieves it's design goals, and actually provides some advantages over installing things via the system package manager.
none of them. I don't like the idea of putting security updates in the hands of the developers of each individual application I use.
Oh your app only works with an old broken insecure version of the library? Fuck you then, you can't just decide to install and use the insecure version.
I've used Flatpak, it feels somewhat sluggish;
I had once upon a time used Snap (unwittingly), never again;
Appimages... with a lack of options, they seem to run well, although the two I've used seem to take away quite the chunk of memory.
But if it's a reasonable choice, I'll always go with natively distributed or locally compiled binaries. They may be janky sometimes, but in my opinion they beat the "just ship the entire computer br0" philosophy that clearly comes from the Windows ecosystem.
I try to install through the package manager, if not available I go with flatpak most of the times.
Although I mostly use native software, I find AppImages useful for testing beta software, since they're one file and easy to try out.
For example: I've been using it with the Krita 5.2 beta and I have also used it before for Godot betas.
I use Flatpak when the native package doesn't work properly or isn't updated at the rate I'd like, although there are cases where I will use it for other reasons, like sandboxing when I don't want an app to have access to everything.
I have never used snaps.
I'm not really incredibly up on the pros and cons outside of user experience, but as a user just trying to use an app, for me flatpak has always seemed the most user friendly. I can install and update them on Pop_OS using the included app store tool, as well as install them from outside the tool. To my memory, snap always requires CLI and hasn't felt smooth, and appimages have felt sketchy AF to me. And like someone else said, updating them isn't smooth or automatic at all.
Real talk? I genuinely don't care. I have actual work that needs to get done. I'm going to use whatever I can to make that faster/easier. Of all the decisions I need to make in a day, this is a pretty inconsequential one.
pacman or from source 😎 (i am superiour because i make it harder for myself)
If I'm not using the package manager, I use mostly Flatpak. I will use a random AppImage here and there.
I prefer those two because I can pick when I update them, and I've not had a lot of issues so far. I don't like Snap because it reminds me too much of Windows Update. I know it can all be adjusted to my taste, but I already have an option that works out of the box.
Snaps, hell no. I wouldn't touch anything Canonical TBH.
Appimages are very chaotic.
Fkatpaks leave a bunch of trash after uninstalling.
I use Flatpaks, while they are not perfect, they are improving.
Fkatpaks leave a bunch of trash after uninstalling.
From my experience, most of the things I'd like to delete after uninstalling are in ~/.var/app/(App ID)/
.
Definitly Flatpaks. Although snaps have improved since I last used them. But of all I still prefer the good old shell based Package manager.
The arch repos are enough for me except two softwares so I downloaded them as appimages. Appimages are enough for my small needs.
Neither. I exclusively use Nix packages. If I had to pick, AppImage because I can easily extract it to package for Nix :P
I'm still trying them out, but if they work as advertised, then AppImages. That's mostly because I use my desktop and laptop pretty much equally, so being able to copy and AppImage from one to the other and keep going would be really handy.
On a similar note, if a computer dies, being able to just copy and paste them to a new computer, or run them from a portable drive would be great.
yes appimages are good but my problem with them is that when there is a new version i should download them again and again....
Have you met appimageupdater?
I prefer AppImages on my Debian desktops as they normally simply work out of the box (download, start) and I had (many years ago) trouble with snap and flatpak.
For personal use, Flatpak when there's no native option, in most cases. They always seem to work and with Flatseal, you can more finely control permissions and local filesystem access of them.
For servers, if it's a single-purpose VM (like I do with my PiHole/AdGuard servers), I'll also go native. Otherwise, Docker for compatibility and ease of management.
Appimage, but only if I can't get the program to compile from source first.
Appimages don't get updated which I find is a missing feature
Flatpak is my preference since it supports multiple remotes (repos) and sandboxing. With flatseal tweaking the sandbox is also easy.
Snaps work great on Ubuntu and support cli tools as well as system components. But their sandboxing doesn't work on many distros and the one and only repo is controlled by one company. If I'm not on Ubuntu, I don't see any reason to choose it over flatpak.
Appimages are great for putting on a USB stick or keeping a specific version of software. But I want to install software from a trusted repository, which Appimages support at best as an afterthought.
Flatpak for sure, appimages are okay in certain circumstances and snaps are trash.
None of them
Flatpaks. On Mint, the GUI update tool updates both Flatpaks and natively installed packages. It's fantastic.
Out of the three, I prefer Flatpaks. Mainly because they have a nice centralized-capable model for performing updates (but not locked centralized like Snaps are), and I can't say I've personally run into a distro where Flatpaks didn't work.
I haven't taken a look at them from a developer standpoint, but from what I hear the development experience isn't bad? If that isn't the case though, I'd love to hear more about why.
Flatpak is the best one imo. Never used appimages, and snap is pure trash (close source, slow, made by canonical). Overall, native packages are imo the way to go, but flatpak is also fairly good.
Snap isn't really closed source, it's common misconception, the closed source is only backend (canonical servers), the snap core itself, which is installed on Ubuntu, is fully open source
Edit: snap definitely sucks tho