QotW: What about alternative package formats?

Inspired by my recent Flatpak win, I’d like you to share your experience with and opinions on alternative package formats. Do you use Flatpak? Or maybe Snap? What are the advantages and downsides?

Ooookay, tell us about Nix, too. :roll_eyes: :smile:

In all honesty, I am not well read into the Snap vs. Flatpak differences to really argue for one vs. the other at a technical level. What I do know is that the last time I looked into this, if I wanted to run a Snap, I basically have to be on Ubuntu, because the rest of the Linux community has eschewed it for Flatpak, which seems like a much more open, and well thought out system for doing application sandboxes.

One thing that I have found very handy is that if a Flatpak’s shipped defaults do not jive with your system, you can break out Flatseal to edit the pak and change how it behaves. That’s not necessarily a smart or good thing all the time, and I also think it can lead to “normal errors” where users are expected to have to customize a Flatpak because the maintainer doesn’t maintain the package appropriately, but I like the ability to make the changes if I need to.

I’m not as keen on using either Flatpak or Snap for CLI tools. For Flatpak, unless stuff has changed, the invocation is cumbersome, and snap’s sandboxing makes for interacting with the rest of the filesystem awkward. I’d much rather have those installed by a different package manager, ideally the OS’s local package manager.

As for Nix, I haven’t tried it in ages, and my opinions are wildly out of date.

I dislike snap. It creates multiple volumes, apps have access problems to my home folder (because containerisation).

As for flatpak, I use it mostly to install games for kids that aren’t readily available on my distro.

As a programmer, I use nix all the time to setup a reproducible environment for other people. Reproducibility is very cool. However, you end up in nix land. I guess one could build static binaries though.

If I were programming for the masses (games and such), I’d go with Flatpak, I guess.

I agree with @belthesar that Snap is practically an Ubuntu-only thing. It works nicely on my Ubuntu tablet. But even in an Ubuntu container, it doesn’t because for some weird design reason, it needs snapd running in the background.

The design of Flatpak seems more reasonable with just a CLI tool and integrations into desktop package managers. I’ve had to use Flatseal only very rarely to break the sandbox open a bit more.

For CLI tools, neither Snap nor Flatpak can hold a candle to Homebrew. Where Homebrew doesn’t work, I still fall back on toolbox containers. Alternatively, I’d recommend Nix-adjacent tools such as Devbox.

You’re right, those volumes are another thing that irritates me in Snap, especially on servers where they require additional work to not get picked up by monitoring.

Nix is definitely on my radar. My experiments with DevBox left a solid impression. I’m only afraid of taking the first step down the Nix rabbit hole. :grin: