I have been using NixOS for about two years now and still feel like a beginner. But I am having fun enjoying the fruits of your labour. Thank you.
Over the two years, I have mostly been impressed with how reliable it is. I would find an expression someone else wrote, which would just work™. If my expression is broken, so is the other person’s. But in the rare cases when I need to run a complex application and nobody has done the hard lifting for me, I would usually not get things to work no matter what I did. This made me question my choice of OS. I think this is a common experience for NixOS beginners and would like to suggest a simple (I think) way the community can address it.
I was recently made aware of nix-ld. I think in combination with buildFHS
it is possible to make a flake/shell, which one would use in case they needed an emergency brake on the reproducibility of NixOS. How does that differ from the example given in nix-ld
repo? The idea is that this flake/shell would (aspire to) be universal. It would provide all libraries a binary can reasonably expect when running on a standard Linux system like Fedora or Arch.
Perhaps such a flake already exists, but the second thing that is required is clear communication that this is possible. I only realized a tool like nix-ld
exists recently. Letting people know they have an out when they just can’t handle the learning curve in some particular instance should be a major selling point of this distro.
I think having an emergency exit such as the one I propose would prevent many beginners from quitting in frustration. Until recently, I believed my only option was running a VM for months or years until one day, I got lucky and one of the nix Jedis packaged it for me. I just barely pushed through and now I can see the light at the end of the tunnel.