aboutsummaryrefslogtreecommitdiff
path: root/scripts/install-nix-from-closure.sh
AgeCommit message (Collapse)Author
2021-11-02installer: Do not use echo -e in #!/bin/sh scriptAnders Kaseorg
ShellCheck correctly warns: In scripts/install-nix-from-closure.sh line 218: echo -e "\nif [ -e $p ]; then . $p; fi # added by Nix installer" >> "$fn" ^-- SC3037: In POSIX sh, echo flags are undefined. In scripts/install-nix-from-closure.sh line 229: echo -e "\nif [ -e $p ]; then . $p; fi # added by Nix installer" >> "$fn" ^-- SC3037: In POSIX sh, echo flags are undefined. Indeed, this actually breaks on Ubuntu where /bin/sh is dash. Fixes #5458. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2021-07-23Merge pull request #5040 from SuperSandro2000/patch-1Domen Kožar
installer: fix --no-modify-profile help text
2021-07-23installer: update global nix.conf locationSandro
2021-07-23installer: fix --no-modify-profile help textSandro
2021-04-29darwin: encrypt nix volume if filevault is enabledTravis A. Everett
2021-01-22scripts/install-nix-from-closure: only show progress if a terminal is usedMaximilian Bosch
While the progress dots during the copying of the store work fine on a normal terminal, those look pretty off if the script is run inside a provisioning script of e.g. `vagrant` or `packer` where `stderr` and `stdout` are captured: default: . default: .. default: . default: . default: . To work around this, the script checks with `-t 0` if it's running on an actual terminal and doesn't show the progress if that's not the case.
2020-11-21installer: simplify the per-build installationzimbatm
The goal is to allow the installation and testing of arbitrary Nix versions. Extend the base installer to accept a `--tarball-url-prefix <url>` to change where the Nix tarball is getting downloaded from. Once this is merged it should allow to: 1. Pick an evaluation at https://hydra.nixos.org/jobset/nix/master that looks healthy 2. Select the installedScript build and find the store path. Now equipped with all of this, use an instance of nar-serve to fetch the install script and release tarballs: curl -sfL https://nar-serve.numtide.com/nix/store/rkv4yh7pym941bhj0849zqdkg2546bdv-installer-script/install \ | sh --tarball-url-prefix https://nar-serve.numtide.com/nix/store Or with cachix, strip the /nix/store and derivation name and then: curl -sfL https://mycache.cachix.org/serve/rkv4yh7pym941bhj0849zqdkg2546bdv/install \ | sh --tarball-url-prefix https://mycache.cachix.org/serve Fixes #4047
2020-10-20Merge pull request #3996 from abathur/macos_big_sur_fixesDomen Kožar
Macos big sur installer fixes
2020-10-19discourage casual Big Sur installsTravis A. Everett
2020-10-19fix xpath and conditional bugs; xpath -> xmllintTravis A. Everett
- xpath -> xmllint: xpath's cli interface changed in Big Sur rather than add conditional logic for picking the correct syntax for xpath, I'm changing to xmllint --xpath, which appears to be consistent across versions I've tested... - /plist/dict/key[text()='Writable']/following-sibling::true[1] doesn't do quite what's expected. It was written to try to select a <true /> node paired with the Writable key, but it will also select the *next* <true /> node that appears even if it was paired with another key. - I think there's also a logic bug in the conditionals here. I'm not sure anyone ever actuall saw it, thanks to the xpath bug, though. With the xpath fix, this conditional passes if /nix does not exist, / IS writable, and the version is Catalina+. I think it meant to test for /nix does not exist, / is NOT writable, and the version is Catalina+. I reworked this lightly to make it a little clearer at the code level.
2020-10-19update macOS version handling for Big SurTravis A. Everett
Keeping this commit narrow for reviewability, but some of these conditionals will change in subsequent commits in this PR. Fixes #3852.
2020-09-30Installer: Set a known umaskEelco Dolstra
Fixes #1560, #2377.
2020-07-31Merge pull request #3788 from crinklywrappr/masterEelco Dolstra
Add a script to install nix on non-systemd systems.
2020-07-18Add newline to profile sourcing line #3393Alex Kovar
2020-07-07merged systemd installer with non-systemd installer.Daniel Fitzpatrick
2020-07-06Add a script to install nix on non-systemd systems.Daniel Fitzpatrick
2020-06-23docs/installer: add correct curl flagsJörg Thalheim
also see https://nixos.org/download.html
2020-05-26Fix installer script bugsDomen Kožar
- --no-channel-add didn't have effect on multi-user installation - some new flags didn't work at all - document all installer flags
2020-05-25Merge pull request #3375 from domenkozar/multi-user-countDomen Kožar
install-multi-user: allow overriding user count
2020-05-25Allow passing extra nix.conf to installerDomen Kožar
2020-05-25install-multi-user: allow overriding user countDomen Kožar
2020-05-21focus on golden-path covering most scenariosTravis A. Everett
This should handle installation scenarios we can handle with anything resembling confidence. Goal is approximating the existing setup--not enforcing a best-practice... Approaches (+ installer-handled, - manual) and configs each covers: + no change needed; /nix OK on boot volume: All pre-Catalina (regardless of T2 or FileVault use) + create new unencrypted volume: Catalina, pre-T2, no FileVault + create new encrypted-at-rest volume: Catalina, pre-T2, FileVault Catalina, T2, no FileVault - require user to pre-create encrypted volume Catalina, T2, FileVault
2020-05-21install: improve output and error handlingDaiderd Jordan
2020-05-21install: show macOS 10.15 message with --daemonDaiderd Jordan
2020-05-21install: also configure ~/.zshenvDaiderd Jordan
The default login shell for users on macOS 10.15 changed from bash to zsh. So while generally nonstandard we need to configure it to make nix function out of the box on macOS.
2020-05-21install: configure and bootstrap synthetic.conf on darwinDaiderd Jordan
Starting macOS 10.15 /nix can't be creasted directly anymore due to the readonly filesystem, but synthetic.conf was introduced to enable creating mountpoints or symlinks for special usecases like package managers.
2020-05-12Expose installer configuration environment variables via command line flagsPavol Rusnak
2020-05-12Introduce NIX_INSTALLER_NO_CHANNEL_ADD which skips nix-channel --addPavol Rusnak
2020-03-11README, error msg: http -> httpsRobert Hensing
2019-12-21Pass -P to cp to preserve symlinksMichael Forney
This is commonly the default behavior with -R, but POSIX leaves the default unspecified.
2019-10-19Fix unset variable in installerSteven Shaw
2019-07-25Add default for USER when unsetMatthew Bauer
uses $(id -u -n) when USER is unset, this is needed on some weird setups in Docker. Fixes #971
2019-05-15Fix shellcheck errorEelco Dolstra
https://hydra.nixos.org/build/93359951
2019-05-08Merge pull request #2594 from LnL7/darwin-10.12.6Graham Christensen
installer: update macOS version check to 10.12.2
2019-05-01Merge pull request #2679 from bjornfor/offline-installEelco Dolstra
install script: don't abort when "nix-channel --update" fails
2019-02-22remove noop uses of nix-store --initzimbatm
the nix-store --init command is a noop apparently
2019-02-20install script: don't abort when "nix-channel --update" failsBjørn Forsman
Instead, print a message about what happened and tell the user what can be done (run "[sudo -i] nix-channel --update nixpkgs" again at a later time). This change allows installing Nix when you're offline. Since the multi-user installer is so verbose, the message isn't printed until the end. Fixes issue #2650 ("installation without internet connection").
2018-12-20installer: update macOS version check to 10.12.2Daiderd Jordan
Nixpkgs will drop support for <10.12 soon and thus a nix release built using the 19.03 channel will also require a newer version of macOS.
2018-09-01Default to single-user installGraham Christensen
2018-04-19installer: default to the daemon installor for Linux with systemdGraham Christensen
Note: don't backport to 2.0-maintenance
2018-04-19installer: allow opting in / out to the daemon installerGraham Christensen
By passing --daemon or --no-daemon, the installer can be forced to select one or the other installation options, despite what the automatic detection can provide. This commit can be backported to 2.0-maintenance because it explicitly turns off the daemon installation for Linux under systemd.
2018-03-29Expand the multi-user installer to support Linuxes with systemdGraham Christensen
- darwin installer: delete hardware report, not necessary - moves os-specific code from the darwin installer to to `poly_*` functions - adds profile.d support to the profile targets, which automatically handles many distros which don't have a /etc/bashrc but do have an /etc/profile.d - /bin/bash -> /usr/bin/env bash - document why each excluded shellcheck check is excluded - rename the multi-user to Daemon-based
2017-07-30Replace Unicode quotes in user-facing strings by ASCIIJörg Thalheim
Relevant RFC: NixOS/rfcs#4 $ ag -l | xargs sed -i -e "/\"/s/’/'/g;/\"/s/‘/'/g"
2017-07-14Address feedback around printf & execGraham Christensen
2017-07-14Switch to a fancy multi-user installer on DarwinGraham Christensen
2017-01-25bail out if macOS 10.9 or lower is used during installerDomen Kožar
2016-12-19shellcheck scripts/install-nix-from-closure.shJames Broadhead
2016-11-26Revert "Get rid of unicode quotes (#1140)"Eelco Dolstra
This reverts commit f78126bfd6b6c8477fcdbc09b2f98772dbe9a1e7. There really is no need for such a massive change...
2016-11-25Get rid of unicode quotes (#1140)Guillaume Maudoux
2016-11-03installation: allow profile modification to be skipped (#1072)Manav Rathi
The current behaviour modifies the first writeable file from amongst .bash_profile, .bash_login and .profile. So .bash_profile (if it is writable) would be modified even if a user has already sourced nix.sh in, say, .profile. This commit introduces a new environment variable, NIX_INSTALLER_NO_MODIFY_PROFILE. If this is set during installation, then the modifications are unconditionally skipped. This is useful for users who have a manually curated set of dotfiles that they are porting to a new machine. In such scenarios, nix.sh is already sourced at a place where the user prefers. Without this change, the nix installer would insist on modifying .bash_profile if it exists. This commit also add documentations for both the current behaviour and the new override.