I’m learning learning to use Nix. This page lists the resources I used, in the order I used them. I feel pretty good about this as a reasonable strategy (for me, at least!) to get up and running.
- Install nix on macOS.
- Read through
man nix-env
and play around with most of the options. Skim the other man nix-*
to get a basic feel.
- semi-concurrently with above, dig through
~/.nix-profile
, ~/.nix-channels
, ~/.nix-defexpr
, and /nix/var/nix/profiles
, to start building a mental model of how all these things interact.
- Complete https://nixcloud.io/tour/. If you haven’t mucked around with functional languages much, the last handful of exercises might break your brain, but I don’t think that sort of thing is going to come up very often in real use.
- Set up a NixOS box on DigitalOcean (https://chris-martin.org/2016/nixos-on-digitalocean). 1GB of RAM isn’t enough for some operations, 4GB is plenty. Play around with NixOS a bit.
- Read through https://nixos.org/nixos/nix-pills/. The last 2-3 start to get kind of… arcane. I started skimming at that point.
- https://nixos.org/nix/manual/. A lot is skimmable at this point; new/interesting stuff in Chapter 13; reference parts (15, 21) later on worth a skim just to get an idea of what exists.
Current project:
- Clone https://github.com/NixOS/nixpkgs, and start exploring. Start with
default.nix
and keep going until you have a rough idea of how to navigate the whole codebase.
Haven’t looked at yet, but probably worth reading: