29
submitted 1 year ago* (last edited 1 year ago) by operator@kbin.social to c/linux@lemmy.ml

So I know my way around Linux pretty well. However I never really got the gist of the difference between Snap, Flatpak and Native packages.

What exactly sets them apart?

Why does everyone seem to hate snap?

I have been using all of them, simultaneously on the same system and never really noticed a difference in the way installation, updates etc are handled (syntax ofc).

I hear snap sandboxes? Is that the main reason? Thanks for your insights..

you are viewing a single comment's thread
view the rest of the comments
[-] WFH@lemmy.world 5 points 1 year ago* (last edited 1 year ago)

From a technical point of view:

  • Appimages are like MacOS .app programs. You download a random executable from a random website, that contains everything it needs to run. It's the antithesis of the Linux way. Great for portability, awful for everything else. There are no automatic updates unless the developer explicitly bothers to implement them.
  • Snaps are like docker containers. Each snap also contains everything it needs to run, but at least there is a centralized update system.
  • Flatpaks are like another package manager layered over your OS. It manages its own dependency system isolated from your main dependency management. It updates its stuff pretty much like apt/dnf/pacman.
  • Native are managed through your distro's package manager, obviously.

From a feature/version point of view:

  • If you have a bleeding edge or quickly moving distro, native packages are fine if you want/need up to date software. Arch users shouldn't need Flatpaks for example. The downside is that those packages are made by the distro's maintainers so can be anywhere from untested pre-release software (happened in Manjaro) to extremely outdated (like in Debian oldstable).
  • Flatpaks/Snaps/Appimages are more and more maintained and packaged by their developers. It's great for them as you only need to package once, all bug reports are on versions you control, and you don't need to depend on a distro's maintainer time and will to push updates to users. For stable distros users, this is theoretically the best of both worlds: a stable, tested OS with up to date user facing applications.

From a philosophical point of view:

  • Appimages and Flatpaks are fully FOSS. Flathub is the dominant ways of distributing Flatpaks but anyone can create a competitor.
  • Snaps are distributed through Canonical's Snap Store, which is not FOSS and is vulnerable to Canonical's corporate meddling.

My personal preference:

  • Flatpaks for GUI apps, native for CLI tools
  • Appimages as a last resort if it's the only way to get a specific app.
  • Snaps never.
this post was submitted on 11 Jul 2023
29 points (91.4% liked)

Linux

47344 readers
1196 users here now

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

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS