Fix installer script bugs
- --no-channel-add didn't have effect on multi-user installation - some new flags didn't work at all - document all installer flags
This commit is contained in:
parent
909bdfb4b4
commit
1a5ac894e9
2 changed files with 22 additions and 15 deletions
|
@ -29,6 +29,7 @@ readonly NIX_FIRST_BUILD_UID="30001"
|
||||||
# Please don't change this. We don't support it, because the
|
# Please don't change this. We don't support it, because the
|
||||||
# default shell profile that comes with Nix doesn't support it.
|
# default shell profile that comes with Nix doesn't support it.
|
||||||
readonly NIX_ROOT="/nix"
|
readonly NIX_ROOT="/nix"
|
||||||
|
readonly NIX_EXTRA_CONF=${NIX_EXTRA_CONF:-}
|
||||||
|
|
||||||
readonly PROFILE_TARGETS=("/etc/bashrc" "/etc/profile.d/nix.sh" "/etc/zshrc")
|
readonly PROFILE_TARGETS=("/etc/bashrc" "/etc/profile.d/nix.sh" "/etc/zshrc")
|
||||||
readonly PROFILE_BACKUP_SUFFIX=".backup-before-nix"
|
readonly PROFILE_BACKUP_SUFFIX=".backup-before-nix"
|
||||||
|
@ -452,9 +453,11 @@ create_directories() {
|
||||||
}
|
}
|
||||||
|
|
||||||
place_channel_configuration() {
|
place_channel_configuration() {
|
||||||
echo "https://nixos.org/channels/nixpkgs-unstable nixpkgs" > "$SCRATCH/.nix-channels"
|
if [ -z "$NIX_INSTALLER_NO_CHANNEL_ADD" ]; then
|
||||||
_sudo "to set up the default system channel (part 1)" \
|
echo "https://nixos.org/channels/nixpkgs-unstable nixpkgs" > "$SCRATCH/.nix-channels"
|
||||||
install -m 0664 "$SCRATCH/.nix-channels" "$ROOT_HOME/.nix-channels"
|
_sudo "to set up the default system channel (part 1)" \
|
||||||
|
install -m 0664 "$SCRATCH/.nix-channels" "$ROOT_HOME/.nix-channels"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
welcome_to_nix() {
|
welcome_to_nix() {
|
||||||
|
@ -636,13 +639,14 @@ setup_default_profile() {
|
||||||
export NIX_SSL_CERT_FILE=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt
|
export NIX_SSL_CERT_FILE=/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Have to explicitly pass NIX_SSL_CERT_FILE as part of the sudo call,
|
if [ -z "$NIX_INSTALLER_NO_CHANNEL_ADD" ]; then
|
||||||
# otherwise it will be lost in environments where sudo doesn't pass
|
# Have to explicitly pass NIX_SSL_CERT_FILE as part of the sudo call,
|
||||||
# all the environment variables by default.
|
# otherwise it will be lost in environments where sudo doesn't pass
|
||||||
_sudo "to update the default channel in the default profile" \
|
# all the environment variables by default.
|
||||||
HOME="$ROOT_HOME" NIX_SSL_CERT_FILE="$NIX_SSL_CERT_FILE" "$NIX_INSTALLED_NIX/bin/nix-channel" --update nixpkgs \
|
_sudo "to update the default channel in the default profile" \
|
||||||
|| channel_update_failed=1
|
HOME="$ROOT_HOME" NIX_SSL_CERT_FILE="$NIX_SSL_CERT_FILE" "$NIX_INSTALLED_NIX/bin/nix-channel" --update nixpkgs \
|
||||||
|
|| channel_update_failed=1
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,6 @@ fi
|
||||||
|
|
||||||
INSTALL_MODE=no-daemon
|
INSTALL_MODE=no-daemon
|
||||||
CREATE_DARWIN_VOLUME=0
|
CREATE_DARWIN_VOLUME=0
|
||||||
NIX_EXTRA_CONF=
|
|
||||||
# handle the command line flags
|
# handle the command line flags
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case $1 in
|
case $1 in
|
||||||
|
@ -50,20 +49,20 @@ while [ $# -gt 0 ]; do
|
||||||
--no-daemon)
|
--no-daemon)
|
||||||
INSTALL_MODE=no-daemon;;
|
INSTALL_MODE=no-daemon;;
|
||||||
--no-channel-add)
|
--no-channel-add)
|
||||||
NIX_INSTALLER_NO_CHANNEL_ADD=1;;
|
export NIX_INSTALLER_NO_CHANNEL_ADD=1;;
|
||||||
--daemon-user-count)
|
--daemon-user-count)
|
||||||
NIX_USER_COUNT=$2
|
export NIX_USER_COUNT=$2
|
||||||
shift;;
|
shift;;
|
||||||
--no-modify-profile)
|
--no-modify-profile)
|
||||||
NIX_INSTALLER_NO_MODIFY_PROFILE=1;;
|
NIX_INSTALLER_NO_MODIFY_PROFILE=1;;
|
||||||
--darwin-use-unencrypted-nix-store-volume)
|
--darwin-use-unencrypted-nix-store-volume)
|
||||||
CREATE_DARWIN_VOLUME=1;;
|
CREATE_DARWIN_VOLUME=1;;
|
||||||
--nix-extra-conf-file)
|
--nix-extra-conf-file)
|
||||||
NIX_EXTRA_CONF=$(cat $2)
|
export NIX_EXTRA_CONF="$(cat $2)"
|
||||||
shift;;
|
shift;;
|
||||||
*)
|
*)
|
||||||
(
|
(
|
||||||
echo "Nix Installer [--daemon|--no-daemon] [--no-channel-add] [--no-modify-profile]"
|
echo "Nix Installer [--daemon|--no-daemon] [--daemon-user-count INT] [--no-channel-add] [--no-modify-profile] [--darwin-use-unencrypted-nix-store-volume] [--nix-extra-conf-file FILE]"
|
||||||
|
|
||||||
echo "Choose installation method."
|
echo "Choose installation method."
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -82,6 +81,10 @@ while [ $# -gt 0 ]; do
|
||||||
echo " --no-modify-profile: Skip channel installation. When not provided nixpkgs-unstable"
|
echo " --no-modify-profile: Skip channel installation. When not provided nixpkgs-unstable"
|
||||||
echo " is installed by default."
|
echo " is installed by default."
|
||||||
echo ""
|
echo ""
|
||||||
|
echo " --daemon-user-count: Number of build users to create. Defaults to 32."
|
||||||
|
echo ""
|
||||||
|
echo " --nix-extra-conf-file: Path to nix.conf to prepend when installing /etc/nix.conf"
|
||||||
|
echo ""
|
||||||
) >&2
|
) >&2
|
||||||
|
|
||||||
# darwin and Catalina+
|
# darwin and Catalina+
|
||||||
|
|
Loading…
Reference in a new issue