fix(install): offline installs copy the ISO store into the target up front
Substituter plumbing through nixos-install proved unreliable (env config is overridden by its hardcoded flags; the forwarded --substituters flag still left the plan building gcc from source). Make every ISO path valid in the target store with one nix copy --all before nixos-install — the in-target build then resolves everything locally and only the per-machine config drvs are built. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -437,6 +437,18 @@ else
|
||||
warn "flake archive failed — first rebuild will need network."
|
||||
fi
|
||||
|
||||
# Offline: sidestep substituter plumbing entirely — make every ISO store
|
||||
# path valid in the target store up front. nixos-install's in-target
|
||||
# build then finds all build tools locally and only the per-machine
|
||||
# config derivations are built. (Two earlier attempts to route this
|
||||
# through substituters — env config and the forwarded --substituters
|
||||
# flag — still left the plan building gcc from source.)
|
||||
if [[ ${#NIXOS_INSTALL_OPTS[@]} -gt 0 ]]; then
|
||||
info "Copying the ISO store into the target (offline install)..."
|
||||
nix --extra-experimental-features nix-command \
|
||||
copy --all --no-check-sigs --to "local?root=/mnt"
|
||||
fi
|
||||
|
||||
nixos-install --no-root-passwd "${NIXOS_INSTALL_OPTS[@]}" --flake "$FLAKE_DIR#default"
|
||||
success "System installed (bootloader in place)"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user