Nix From the Ground Up
I recently spent some time learning Nix after watching this talk by Xe. Nix is a package manager/build system for Linux and macOS. It does a number of things I really like:
- Transparent handling of source and binary packages.
- Includes a rich central package registry, but you can host your package descriptions or binaries anywhere.
- Does not require root and runs alongside any Linux distribution.
- Easy to pin or customize versions of individual packages.
- Straightforward support for project-specific dependencies.
Nix is a cool piece of tech, but in my opinion, it’s pretty hard to learn (at least at time of writing). I think this is accidental complexity: I was able to be productive with Nix in my personal projects in a few days, but it took a fair amount of research from many different sources. I took a lot of notes, then realized I wanted to publish them to share this knowledge.
So here’s my guide! “Nix From the Ground Up” aims to help explain the concepts behind Nix with a hands-on approach.