Во-первых, у никса подход a la bsd-шные порты, только с бинарным кешированием. Т.е. имеется
https://github.com/nixos/nixpkgs, где описаны пакеты и то, как из собирать, и есть бинарный кеш для этих пакетов (который привязывается к конкретному варианту nix-манифеста за счет того, что, по сути, большинство пакетов билдятся воспроизводимо и являются content addressable).
Из этого следуют 2 вывода:
* тебе нужно зеркалировать nixpkgs с ручным обновлением, если ты хочешь управлять версиями того, что тебе ставится.
* нужно как-то кешировать бинарный кеш, т.к. он не вечный (разработчики nixos не хотят переплачивать за s3 амазону, потому чистят кеш со временем), и, если он протухнет, nix будет автоматически фоллбэчиться на сборку из сорцов, что замедлит CI (хоть сборка в большинстве случаев и reproducible, и фоллбэк можно отключить).