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…

1 point

I hat snap cause its a pita to freeze or not update some things. Also i dont like that snapcraft is run solely by canonical (sp?)

permalink
report
reply
24 points

Snaps are disliked because the store is closed-source and run by Canonical. Snaps are also disliked simply because Canonical is pushing them so hard, forcibly replacing native packages that exist and work fine. For example, there was a debacle a while back where running apt install firefox still installed the Snap version instead of the native version.

Flatpaks are disliked because they sometimes struggle to integrate into a system well. For example, Discord Rich Presence doesn’t work for the Flatpak version of Discord unless the thing you want Discord to detect is also a Flatpak, and even that detection is shaky.

Snaps and Flatpaks are both disliked because they contain frameworks and runtimes that some users consider bloat.

To further explain, when you use a native package, it and its dependencies get installed on your system. If any other package in the future requires one of those dependencies, awesome, it’s already there. But for Flatpaks and Snaps, each app has to bundle its own dependencies. Sometimes they can be shared with other Flatpaks/Snaps, depending on the dependency, but they still require at least a little extra storage space.

There are probably details I’m forgetting, but those are the main arguments. My advice is if you’re happy with the way your system is running, don’t worry about it. My personal preference is Flatpak first, native second, Snap never. I don’t have anything against native packages, but some software I use is exclusively distributed as Flatpak, so I switched most things over for consolidation.

permalink
report
reply
9 points

Afaik snaps can’t share depending packages, making it store the same dependency multiple times. Flatpak can share the depending package+version, sharing it to every app it needs and store it once.

The Golden advantage I see is not having issues installing multiple versions of the same dependency, which would be kinda hard for a native system depending on the type of package an app is depending on. Like Python and Java could easy have multiple same versions on a native system, but other things may be too difficult to realize except you use Flatpak

permalink
report
parent
reply
5 points

Flatpak sandboxes too, but it at least is fully Open source, you can create your own Flatpak Repository and add it to your flatpak to grab and install new packages you made yourself. For Snap… it implements not that good into the desktop I heard but may have changed, you can’t create your own repository nor see the servers code as there is only 1 single server for Snap, and its canonicals Closed Source Snap Server. But hey, it at least got the super cool Hologram Open Source Sticker on it, because the client is at least Open Source… No thanks

I use PrismLauncher (Minecraft Launcher) inside Flatpak for example because it sandboxes the app so no stupid mod can infect me that easy now, haha! But generally its kinda comfy to use Flatpak because it has less dependency issues compared to Native Packages because Flatpak has its own Packages which Flatpak Apps can share to each other. Snap on the other hand can’t have dependencies shared between Snap Apps so they all have duplicate dependencies.

permalink
report
reply
12 points
*
Deleted by creator
permalink
report
reply

Linux

!linux@lemmy.ml

Create post

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

Community stats

  • 6.6K

    Monthly active users

  • 6.5K

    Posts

  • 177K

    Comments