Use the binary cache in the installer
Also remove "nixos-rebuild pull".
This commit is contained in:
parent
ef3199f782
commit
13617b803b
@ -40,7 +40,6 @@ in
|
||||
|
||||
# The following are used by nixos-rebuild.
|
||||
nixFallback = pkgs.nixUnstable;
|
||||
manifests = config.installer.manifests;
|
||||
|
||||
tests = config.tests;
|
||||
}
|
||||
|
@ -25,12 +25,10 @@
|
||||
<arg choice='plain'><option>dry-run</option></arg>
|
||||
<arg choice='plain'><option>build-vm</option></arg>
|
||||
<arg choice='plain'><option>build-vm-with-bootloader</option></arg>
|
||||
<arg choice='plain'><option>pull</option></arg>
|
||||
</group>
|
||||
<sbr />
|
||||
<arg><option>--upgrade</option></arg>
|
||||
<arg><option>--install-grub</option></arg>
|
||||
<arg><option>--no-pull</option></arg>
|
||||
<arg><option>--no-build-nix</option></arg>
|
||||
<arg><option>--fast</option></arg>
|
||||
<arg><option>--rollback</option></arg>
|
||||
@ -170,17 +168,6 @@ $ ./result/bin/run-*-vm
|
||||
partition, which is mounted read-only in the VM.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>pull</option></term>
|
||||
<listitem>
|
||||
<para>This operation fetches the latest manifest in the Nixpkgs
|
||||
channel to speed up subsequent <command>nix-env</command>
|
||||
operations. This is useful if you are not using
|
||||
<command>nix-channel</command> but still want to use pre-built
|
||||
binary packages. It doesn’t reconfigure the system</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
|
@ -42,8 +42,6 @@ in
|
||||
|
||||
isoImage.volumeID = "NIXOS_${config.system.nixosVersion}";
|
||||
|
||||
installer.nixosURL = "http://nixos.org/releases/nixos/nixos-${config.system.nixosVersion}";
|
||||
|
||||
boot.postBootCommands =
|
||||
''
|
||||
# Provide the NixOS/Nixpkgs sources in /etc/nixos. This is required
|
||||
|
@ -5,7 +5,6 @@
|
||||
# - copy closure of Nix to target device
|
||||
# - register validity
|
||||
# - with a chroot to the target device:
|
||||
# * do a nix-pull
|
||||
# * nix-env -p /nix/var/nix/profiles/system -i <nix-expr for the configuration>
|
||||
# * run the activation script of the configuration (also installs Grub)
|
||||
|
||||
@ -36,13 +35,6 @@ if ! test -e "$NIXOS_CONFIG"; then
|
||||
fi
|
||||
|
||||
|
||||
# Do a nix-pull to speed up building.
|
||||
if test -n "@nixosURL@" -a ${NIXOS_PULL:-1} != 0; then
|
||||
mkdir -p /nix/var/nix/channel-cache -m 0755
|
||||
NIX_DOWNLOAD_CACHE=/nix/var/nix/channel-cache \
|
||||
@nix@/bin/nix-pull @nixosURL@/MANIFEST || true
|
||||
fi
|
||||
|
||||
|
||||
# Mount some stuff in the target root directory. We bind-mount /etc
|
||||
# into the chroot because we need networking and the nixbld user
|
||||
@ -107,6 +99,7 @@ export LC_TIME=
|
||||
# Create a temporary Nix config file that causes the nixbld users to
|
||||
# be used.
|
||||
echo "build-users-group = nixbld" > $mountPoint/tmp/nix.conf
|
||||
grep binary-caches /etc/nix/nix.conf >> $mountPoint/tmp/nix.conf
|
||||
export NIX_CONF_DIR=/tmp
|
||||
|
||||
|
||||
|
@ -18,14 +18,11 @@ The operation is one of the following:
|
||||
build-vm-with-bootloader:
|
||||
like build-vm, but include a boot loader in the VM
|
||||
dry-run: just show what store paths would be built/downloaded
|
||||
pull: just pull the NixOS channel manifest and exit
|
||||
|
||||
Options:
|
||||
|
||||
--upgrade fetch the latest version of NixOS before rebuilding
|
||||
--install-grub (re-)install the Grub bootloader
|
||||
--pull do a nix-pull to get the latest NixOS channel
|
||||
manifest
|
||||
--no-build-nix don't build the latest Nix from Nixpkgs before
|
||||
building NixOS
|
||||
--rollback restore the previous NixOS configuration (only
|
||||
@ -49,7 +46,6 @@ EOF
|
||||
# Parse the command line.
|
||||
extraBuildFlags=
|
||||
action=
|
||||
pullManifest=
|
||||
buildNix=1
|
||||
rollback=
|
||||
upgrade=
|
||||
@ -60,15 +56,12 @@ while test "$#" -gt 0; do
|
||||
--help)
|
||||
showSyntax
|
||||
;;
|
||||
switch|boot|test|build|dry-run|build-vm|build-vm-with-bootloader|pull)
|
||||
switch|boot|test|build|dry-run|build-vm|build-vm-with-bootloader)
|
||||
action="$i"
|
||||
;;
|
||||
--install-grub)
|
||||
export NIXOS_INSTALL_GRUB=1
|
||||
;;
|
||||
--pull)
|
||||
pullManifest=1
|
||||
;;
|
||||
--no-build-nix)
|
||||
buildNix=
|
||||
;;
|
||||
@ -127,24 +120,6 @@ if initctl status nix-daemon 2>&1 | grep -q 'running'; then
|
||||
fi
|
||||
|
||||
|
||||
# Pull the manifests defined in the configuration (the "manifests"
|
||||
# attribute). Wonderfully hacky.
|
||||
if [ -n "$pullManifest" -o "$action" = pull ]; then
|
||||
set -o pipefail
|
||||
manifests=$(nix-instantiate --eval-only --xml --strict '<nixos>' -A manifests \
|
||||
| grep '<string' | sed 's^.*"\(.*\)".*^\1^g')
|
||||
set +o pipefail
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
mkdir -p /nix/var/nix/channel-cache
|
||||
for i in $manifests; do
|
||||
NIX_DOWNLOAD_CACHE=/nix/var/nix/channel-cache nix-pull $i || true
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$action" = pull ]; then exit 0; fi
|
||||
|
||||
|
||||
# If ‘--upgrade’ is given, run ‘nix-channel --update nixos’.
|
||||
if [ -n "$upgrade" ]; then
|
||||
nix-channel --update nixos
|
||||
|
@ -1,7 +1,7 @@
|
||||
# This module generates nixos-install, nixos-rebuild,
|
||||
# nixos-hardware-scan, etc.
|
||||
|
||||
{config, pkgs, modulesPath, ...}:
|
||||
{ config, pkgs, modulesPath, ... }:
|
||||
|
||||
let
|
||||
### implementation
|
||||
@ -23,7 +23,6 @@ let
|
||||
|
||||
inherit (pkgs) perl pathsFromGraph;
|
||||
nix = config.environment.nix;
|
||||
nixosURL = cfg.nixosURL;
|
||||
|
||||
nixClosure = pkgs.runCommand "closure"
|
||||
{ exportReferencesGraph = ["refs" config.environment.nix]; }
|
||||
@ -84,27 +83,6 @@ in
|
||||
{
|
||||
options = {
|
||||
|
||||
installer.nixosURL = pkgs.lib.mkOption {
|
||||
default = http://nixos.org/releases/nixos/channels/nixos-unstable;
|
||||
example = http://nixos.org/releases/nixos/nixos-0.1pre1234;
|
||||
description = ''
|
||||
URL of the Nixpkgs distribution to use when building the
|
||||
installation CD.
|
||||
'';
|
||||
};
|
||||
|
||||
installer.manifests = pkgs.lib.mkOption {
|
||||
default = [ http://nixos.org/releases/nixos/channels/nixos-unstable/MANIFEST ];
|
||||
example =
|
||||
[ http://nixos.org/releases/nixpkgs/channels/nixpkgs-unstable/MANIFEST
|
||||
http://nixos.org/releases/nixos/channels/nixos-stable/MANIFEST
|
||||
];
|
||||
description = ''
|
||||
URLs of manifests to be downloaded when you run
|
||||
<command>nixos-rebuild</command> to speed up builds.
|
||||
'';
|
||||
};
|
||||
|
||||
installer.enableGraphicalTools = pkgs.lib.mkOption {
|
||||
default = false;
|
||||
type = with pkgs.lib.types; bool;
|
||||
|
@ -79,7 +79,7 @@ let
|
||||
{ services.httpd.enable = true;
|
||||
services.httpd.adminAddr = "foo@example.org";
|
||||
services.httpd.servedDirs = singleton
|
||||
{ urlPath = "/releases/nixos/channels/nixos-unstable";
|
||||
{ urlPath = "/binary-cache";
|
||||
dir = "/tmp/channel";
|
||||
};
|
||||
|
||||
@ -129,7 +129,6 @@ let
|
||||
"rm /etc/hosts",
|
||||
"echo 192.168.1.1 nixos.org > /etc/hosts",
|
||||
"ifconfig eth1 up 192.168.1.2",
|
||||
"nixos-rebuild pull",
|
||||
);
|
||||
|
||||
# Test nix-env.
|
||||
|
Loading…
Reference in New Issue
Block a user