NixOS is a Linux distribution that is completely and entirely reproducible. Everything you use is defined in a configuration file that is used to build your system. All the services, packages, options, partition layout, hardware, everything, is in this config file.
If you're a developer, your eyes might be sparkling right now: that's right, one config file to exactly replicate your entire development environment.
You also can never get into dependency hell. Packages all declare exactly which versions of each library they need, and these versions are all installed side by side and kept, not erased by newer versions.
NixOS sounds super cool. Has anyone tried it out on a RaspberryPi for a home server? I might try replacing Ubuntu as my home server.
IIRC, once you built and installed the Pi image, in order to update you needed to reinstall it all locally, as NixOS doesn't consider ARM built on x86 to be identical to ARM built on ARM. However, I believe they now have an ARM build server that generates both precompiled ARM-from-ARM images and packages.
Interesting, I haven’t tried it yet, but I did see they have an ARM build on their website. I’ll need to do some more research before I reflash my Pi