The Curse of NixOS
I didn&#x27;t go all-in with nixos -- and I&#x27;m thankful I didn&#x27;t.<p>I simply tried using it for local development.  I thought that I could replace the various language version managers with nix.  I spent weeks working with nix to understand the language, how to use it, and reading as much documentation&#x2F;blogs as possible.<p>One really frustrating thing about nix I noticed early on is the lack of support for older language versions.  For example, if you want to use something like ruby2.2 you&#x27;ll get a notice saying that the package is insecure and it won&#x27;t allow you to install it.  They mention an environment variable you can set to get around it but even that didn&#x27;t work properly.  Is my use-case not relevant to nix?  Even the simplest requests are met with unavoidable blockers.  Frustrating.<p>Something simple like installing a specific `node` version, corresponding `yarn`, and have it work just as well as `nvm` proved to be a challenge.<p>I managed to get it working relatively well until I ran into weird issues with native bindings on a project that I have literally never seen before.  Issues with `dlopen` and the ilk just made me frustrated enough to post this:<p><a href="https:&#x2F;&#x2F;twitter.com&#x2F;neurosnap&#x2F;status&#x2F;1485427740610375680?s=20" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;neurosnap&#x2F;status&#x2F;1485427740610375680?s=2...</a><p>I&#x27;m not even talking about the final stage of nix where all my npm packages are shasum&#x27;d and checked into nix, I&#x27;m simply installing two packages: node and yarn.  Something this simple didn&#x27;t work for every project I had.  This is all not to mention that I have to add a `flake.nix` and `flake.lock` to every project or create some nix repo where I put all these files.<p>I love the idea of nix and nixos and really wanted to get it to work.  Ultimately it&#x27;s just not there yet and I&#x27;m not sure it ever will be.<p>Right now, the time you save by using nix is completely lost when you traverse down the rabbit hole of outdated documentation and never ending bugs with the actual system.