it doesn’t work for me when the target architecture is different than the host architecture that calls the command.
This one works as it targets the same arch - x86_64-linux
nixos-rebuild switch --flake .#deckard --target-host deckard --use-remote-sudo
Now, a similar command but I am targeting an aarch64 machine and using nixbuild builder (this one also works):
nixos-rebuild build --max-jobs 0 --build-host "eu.nixbuild.net" --target-host surfer --use-remote-sudo --flake .#surfer
However if I replace build
with switch
the command fails:
$ nixos-rebuild switch --max-jobs 0 --build-host "eu.nixbuild.net" --target-host surfer --use-remote-sudo --flake .#surfer
/nix/store/5yksn2xwy3aif5pxz353i64i0fwvj5gp-nixos-rebuild/bin/nixos-rebuild: line 382: /nix/store/zlh7zakv2fn97fb4q2y6abzsdp6jflfd-coreutils-9.3/bin/mktemp: cannot execute binary file: Exec format error
Any idea what could be wrong?
Atemu
December 22, 2023, 9:29am
22
Did you declare the hostSystem
in surfer
’s config?
No, I only have system = "aarch64-linux
. I thought that hostSystem
property is only required when doing some cross-compilation, isn’t it?
I kind of solved my problem, i.e. I found the correct set of flags that work but I would like to understand what is going on.
The correct command looks as follow:
nixos-rebuild --max-jobs 0 --builders "ssh://eu.nixbuild.net aarch64-linux - 100 1" --flake .#surfer --target-host surfer --fast --use-remote-sudo switch
what is interesting is that the documentation says:
--fast
Equivalent to --no-build-nix. This option is useful if you call nixos-rebuild frequently (e.g. if you’re hacking on a NixOS module).
where:
--no-build-nix
Normally, nixos-rebuild first builds the nixUnstable attribute in Nixpkgs, and uses the resulting instance of the Nix package manager to build the new system configuration. This is necessary if the NixOS modules use features not provided by the currently installed version of Nix. This option disables building a new Nix.
However running it with --no-build-nix
instead of --fast
fails as before:
nixos-rebuild --no-build-nix --max-jobs 0 --builders "ssh://eu.nixbuild.net aarch64-linux - 100 1" --flake .#surfer --target-host surfer switch
/nix/store/5yksn2xwy3aif5pxz353i64i0fwvj5gp-nixos-rebuild/bin/nixos-rebuild: line 382: /nix/store/zlh7zakv2fn97fb4q2y6abzsdp6jflfd-coreutils-9.3/bin/mktemp: cannot execute binary file: Exec format error
rei
June 17, 2024, 12:33pm
24
What was this pointing at before? Right now the line is just a closing bracket.
rei
June 17, 2024, 1:06pm
26
Thanks! Of course, you need to be able to build on your own machine.