I deal with NIX_PATH like this:
let
nixpkgs = builtins.fetchTarball { ... };
in
import "${nixpkgs}/nixos" {
configuration = {
imports = [ ./configuration.nix ];
nix.nixPath = [
"nixos-config=${toString ./configuration.nix}"
"nixos-system=${toString ./system.nix}"
"nixpkgs=/run/current-system/nixpkgs"
];
system.systemBuilderCommands = "ln -s ${nixpkgs} $out/nixpkgs";
};
}
nixos-configso thatnixos-rebuild editworks,nixos-systemso I can runnixos-rebuildanywhere,nixpkgsso Nix uses the same Nixpkgs that was used to build the system,- and the link to /run/current-system so it doesn’t get gc’ed.