I feel like inmutable distros are in a quite good state nowadays, and while solutions like bootc and sysexts are not “mainstream” yet, it’s getting there
when it comes to getting non Flatpak packages, things get interesting, there are a lot of options, really
AppImages, statically linked binaries, tarballs, OCI containers, distrobox/toolbx, Homebrew, VMs, Nix even experimental formats like RunImages, AppBundles and FlatImages
if you need some non-system level package, you’ll have a way to use it yet, still it seems sort of chaotic “which one should I choose? how will I be able to easily manage them?”
GPM, dbin, Soar, AM… and the list goes on
and it’s okay, the so called cloud native approach is still evolving, so this fragmentation is expected so it’s nice to share opinions about this while we’re living this interesting phase any thoughts?


All of the methods have big issues but I would still prefer them over messing with a mutable system
Also Nix, Flatpak and a few more fully depend on Github. Same with uBlue, Secureblue and a ton of other projects. Really scary actually.
Looks to me like immutable only attracts the kind of developers/hackers who like to solve things by slapping another runtime on it.
Immutable in the actual sense yes, it is basically a product and every other software is installed aside from it.
But you can also have better managed systems like nix or ostree, that reduce entropy or at least make it fully declarative so theoretically finding and reproducing issues is easy
my thoughts
Can always just layer it with rpm-ostree install (.rpm file)
Never used homebrew, that doesnt sound good.
I am trying to use nix and firejail only, but it is pretty rough and barely documented which is kinda insane as firejail is THE tool. Unlike crabjail, bubblejail and what else is out there
Distrobox excels for when you need some proprietary tool that ships it’s packages as a repo for Ubuntu but not much else. You spin up a distrobox for Cisco Packet Tracer, or VSCode (the proprietary microsoft one, not Arch’s Code-OSS and Unity.
Then, once you’re done, you can just delete it all.
this, even a tarball would have been better than a Ubuntu-only .deb
If the tarball was dynamically linked against specific distro’s libraries though, then it wouldn’t work on all distros.
They also often provide RPM packages for Red Hat systems. Not always though, and I use Arch (btw) anyways.
really? by the time I needed it, there were only .deb available, and they did not listed all their dependencies on Debian, only on Ubuntu, I had to look for their dependencies and install them manually, what a mess
Not everybody does. It’s just sometimes.
Nix is what I use, and it was frustrating to have to hack a lot of it into place, but I feel like it has the most potential. Unfortunately the flakes nonflakes split, in combination with the split of “distros” like determinate nix, flox, and so on, and the governance concerns really hold it back. It has horrific documentation, for the most part caused by the above (flakes are “experimental” and so can’t be included in official docs), and it is frustrating the lengths I have to go to to make stuff work that should be easy.
For example, GPU acceleration of Nix packaged apps on non Nixos systems. I figured out how to do it:
source
But I think it’s just straight up impossible to do this via imperative package installs, outside of home manager. And it’s kind off important if you want any GUI app whatsoever to work.
But now that I have it working, I use Nixpkgs exclusively and am able to avoid the AUR entirely. To me, the AUR is a last resort, only for something like say, system level printer drivers (thankfully I’ve never needed to install anything to get printers to work). By ensuring that I only use the AUR once in a blue moon, I can make sure that I actually review the PKGBUILD when using it.
Snap does seem to support user namespaces. Although I want to comment that user namespaces are not universally insecure. When an application is confined within a user namespace, seccomp rules restrict it from being able to interact with the user namespaces subsystem, walling it off from the increased attack surface.
Would you mind explaining what you mean with this? Thanks in advance!
They are probably referring to the way that snap, flatpak, and distrobox are available as official packages in most linux distro’s repositories, whereas nix isn’t. I have encountered this frustration for sure. Debian and Arch provide nix packages, but many other distros don’t.
In addition to this, nix requires manual setup if you install it from the repos, which is annoying. And then you have to do further manual setup to enable flakes, and then you have to figure out how to install packages and it’s not fun.
So the main way people install nix is via the
curl | bashscripts various “distros” of Nix provide.No, official packages mean packaged upstream by the creators of the software, so if issues occur you can talk to them directly.