I’ve created NixOS image intended to be pxebooted using netboot.nix in nixpkgs and I can successfully do that. These hosts are booted in a network with no internet access.
In the same network I have spun up a machine running nix-serve and it has a second interface where I can push packages to its nix store. As a test I have pushed niv using
nix-copy-closure to the nix-serve machine and I have set that host as the only binary cache in the netboot image.
However when I try running
nix-shell -p niv on the pxe booted host I get the following (and there’s a lot of stuff in between the … gap):
> nix-shell -p niv these derivations will be built: /nix/store/01n3wxxw29wj2pkjqimmmjzv7pihzmd7-which-2.21.tar.gz.drv /nix/store/883hki7vzya1zsy8c0f44hgqwgz9q7wy-gettext-0.20.1.tar.gz.drv /nix/store/b7irlwi2wjlx5aj1dghx4c8k3ax6m56q-busybox.drv /nix/store/bzq60ip2z5xgi7jk6jgdw8cngfiwjrcm-bootstrap-tools.tar.xz.drv /nix/store/wj70qz8syf2jv4lr58larhap39x9ywy8-bootstrap-tools.drv ... /nix/store/xhaaysyyg2agbncr7s872i6dxzppnvsv-bash44-022.drv /nix/store/ybxpl2sywkkwykydxgc1shqv3hh8akd7-bash44-017.drv /nix/store/rk2mypz949mcq43ij7bsn4sxjij2z397-bash-interactive-4.4-p23.drv these paths will be fetched (0.00 MiB download, 5.46 MiB unpacked): /nix/store/mqqhgk2wg65s6z0fhv74vrzbch8x5xpa-niv-0.2.13-bin
This is a problem since this is a netboot image that will always be fresh after bootup and I’d like to be able to use
nix-shell in there. I thought that
nix-copy-closure would recursively push everything required for that derivation.
So I’m wondering if there’s something missing in the nix binary cache or the netboot image?
What is the minimum of derivations you should push into a binary cache before you can start cherry picking packages in there? I don’t want to host a complete mirror of nixpkgs.