aboutsummaryrefslogtreecommitdiff
path: root/scripts/nix-profile.sh.in
AgeCommit message (Collapse)Author
2023-03-01Merge pull request #7925 from cole-h/fixup-xdg-nix-envEelco Dolstra
Check if NIX_LINK_NEW exists instead of checking that NIX_LINK doesn't exist
2023-02-28Check if NIX_LINK_NEW exists instead of checking that NIX_LINK doesn't existCole Helbling
For brand new installations, neither NIX_LINK_NEW (`$XDG_STATE_HOME/nix/profile` or `~/.local/state/nix/profile`), nor NIX_LINK (`~/.nix-profile`) will exist. This restores functionality to nix-env, which is relied upon by GitHub Actions such as https://github.com/cachix/cachix-action and the Nixpkgs EditorConfig (and other) CI.
2023-02-28nix-profile{,-daemon}.sh.in: Allow XDG_STATE_HOME to be unsetCole Helbling
One of our CI machines installs Nix via the official script and then sources the nix-profile.sh script to setup the environment. However, it doesn't have XDG_STATE_HOME set, which causes sourcing the script to fail.
2023-02-10A setting to follow XDG Base Directory standardAlexander Bantyev
XDG Base Directory is a standard for locations for storing various files. Nix has a few files which seem to fit in the standard, but currently use a custom location directly in the user's ~, polluting it: - ~/.nix-profile - ~/.nix-defexpr - ~/.nix-channels This commit adds a config option (use-xdg-base-directories) to follow the XDG spec and instead use the following locations: - $XDG_STATE_HOME/nix/profile - $XDG_STATE_HOME/nix/defexpr - $XDG_STATE_HOME/nix/channels If $XDG_STATE_HOME is not set, it is assumed to be ~/.local/state. Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com> Co-authored-by: Tim Fenney <kodekata@gmail.com> Co-authored-by: pasqui23 <pasqui23@users.noreply.github.com> Co-authored-by: Artturin <Artturin@artturin.com> Co-authored-by: John Ericson <Ericson2314@Yahoo.com>
2022-09-13Add fish suport to installerAna Hobden
Before this patch, installing Nix using the Fish shell did not work because Fish wasn't configured to add Nix to the PATH. Some options in #1512 offered workarounds, but they typically involve extra plugins or packages. This patch adds native, out-of-the-box support for the Fish shell. Note that Fish supports a `conf.d` directory, which is intended for exactly use cases like this: software projects distributing shell snippets. This patch takes advantage of it. The installer doesn't append any Nix loader behavior to any Fish config file. Because of that, the uninstall process is smooth and a reinstall obliterates the existing nix.fish files that we place instead of bothering the user with a backup / manual removal. Both single-user and multi-user cases are covered. It has been tested on Ubuntu, and a Mac with MacPorts, homebrew, and the Fish installer pkg. Closes #1512 Co-authored-by: Graham Christensen <graham@grahamc.com>
2022-02-21Document usage of MANPATH in nix-profile.shNicolas Mattia
While trying to figure out how `nix-env`/`nix profile` work I had a hard time understand how man pages were being installed. Took me quite some time to figure this out, thought it might be useful to others too!
2019-11-22Provide a default value for NIX_PATHEelco Dolstra
2019-11-22Remove $NIX_USER_PROFILE_DIREelco Dolstra
This is not used anywhere.
2019-10-09nix-env: Create ~/.nix-defexpr automaticallyEelco Dolstra
2019-10-09nix-profile.sh: Remove coreutils dependencyEelco Dolstra
2019-10-09nix-env: Create ~/.nix-profile automaticallyEelco Dolstra
2019-10-09nix-profile.sh: Don't create .nix-channelsEelco Dolstra
This is already done by the installer, so no need to do it again.
2019-10-09Remove world-writability from per-user directoriesEelco Dolstra
'nix-daemon' now creates subdirectories for users when they first connect. Fixes #509 (CVE-2019-17365). Should also fix #3127.
2019-05-15Sync NIX_PROFILES between single-user and multi-user modesMatthew Bauer
When we are in single user mode, we still want to have access to profiles. This way things in Nixpkgs that rely on them getting set accurately are done in both cases. The point where I hit this is with using aspell which looks in NIX_PROFILES: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/aspell/default.nix Before this patch, NIX_PROFILES was never set in single user mode! This corrects that.
2019-05-15nix-profile: Add all channels to $NIX_PATHEelco Dolstra
Fixes #2709.
2019-02-14nix.sh: Be set -u compliant.Shea Levy
2018-01-15Fix manpath detectionIavael
Checking for MANPATH without quotes always returns true, so that it breaks bash-completion for man pages on modern systems without MANPATH environment variable.
2017-12-29Do not export ASPELL_CONFFrederik Rietdijk
This does not belong in Nix. Setting this env var is already done by the aspell derivation found in Nixpkgs.
2017-05-07nix-profile.sh: remove sbin from PATHJörg Thalheim
sbin is a symlink to bin. profiles only contains packages, which have this symlink. It is a subset of bin. related to https://github.com/NixOS/nixpkgs/pull/25550
2016-10-13SSL_CERT_FILE -> NIX_SSL_CERT_FILEEelco Dolstra
This prevents collisions with the "native" OpenSSL, in particular on OS X. Fixes #921.
2016-07-29Set $MANPATH (#1005)Alexey Shmalko
Currently, man has issues finding man pages for Nix-installed application (also, `nix-env --help` doesn't work). The issue is caused by custom `$MANPATH` set by my system. That makes man use it instead of searching in default location. Either of next lines workaround the issue: ```sh unset MANPATH export MANPATH=$HOME/.nix-profile/share/man:$MANPATH ``` This patch adds the later line to the `nix-profile.sh` if user has `MANPATH` set. (Not clearing `MANPATH` as that would be disrespect of user's preferences.) As a side-effect, host's man might find man pages installed by Nix.
2016-05-31nix-profile.sh: Don't pollute the environmentEelco Dolstra
2016-04-10Bring nix-profile.sh in line with NixOSWout Mertens
Use the same logic as NixOS' profile and environment setup. Closes #414
2016-02-16nix-profile.sh.in: find ca-bundle.pem on openSUSE Tumbleweed machinesPeter Simons
2016-02-12nix-profile.sh.in: quote use of $HOME in shell argumentsPeter Simons
All other places in the script do this already, so let's be consistent.
2015-07-01Revert "add the manpath to the installer"Eelco Dolstra
This reverts commit 76f985b92d95fef967c1f3193d05244ced15420b. We shouldn't mess with $MANPATH, because on some "man" implementations (like NixOS'), the default value on $MANPATH is derived from $PATH. So if you set $MANPATH, you lose the default locations.
2015-06-08Update cacert locationsEelco Dolstra
2015-04-12add the manpath to the installerMichael Merickel
2014-12-10Always use https to fetch the Nixpkgs channelEelco Dolstra
2014-12-10Fix bad commentEelco Dolstra
2014-07-29nix-profile.sh: Set $SSL_CERT_FILEEelco Dolstra
2014-02-26Add ~/.nix-profile/sbin to $PATHEelco Dolstra
Fixes #112.
2014-01-15nix-profile.sh: Add the Nixpkgs channel to $NIX_PATHEelco Dolstra
2012-11-09Use a shorter Nixpkgs channel URLEelco Dolstra
2012-09-13nix-profile.sh: Revert to single-user versionEelco Dolstra
Commit 6a214f3e06fa1c5f0a4d40e555f14d87691af297 copied most of the Nix shell initialisation code from NixOS to nix-profile.sh; however, that code assumes a multi-user install and is Linux-specific (e.g. it calls the "stat" command). So go back to the simple single-user version. Fixes #49.
2012-07-25nix-profile.sh: Don't set NIX_REMOTE on single user installationsEelco Dolstra
Commit 6a214f3e06fa1c5f0a4d40e555f14d87691af297 reused the NixOS environment initialisation for nix-profile.sh, but this is inappropriate on systems that don't have multi-user support enabled.
2012-07-25Subscribe to the Nixpkgs rather than NixOS channelEelco Dolstra
2012-05-31Update nix profile: - incorporate NixOS's configuration so that nix is ↵Michel Alexandre Salim
usable by normal users - install as a data file, not a program file
2012-05-22Remove $FONTCONFIG_FILE hack from nix-profile.shEelco Dolstra
It's no longer needed because Nixpkgs' fontconfig uses /etc/fonts/fonts.conf as a default, just like other distributions.
2008-11-20(no commit message)Eelco Dolstra
2006-03-10* Write messages to stderr, not stdout.Eelco Dolstra
2005-10-11add @coreutils@ to correctly use coreutils to create a profile. This is neededArmijn Hemel
for NixOS, where we might not know our PATH in advance.
2004-02-06* Improvements to profiles. Generations are now per-profile, e.g.,Eelco Dolstra
default -> default-94-link default-82-link -> /nix/store/cc4480... default-83-link -> /nix/store/caeec8... ... default-94-link -> /nix/store/2896ca... experimental -> experimental-2-link experimental-1-link -> /nix/store/cc4480... experimental-2-link -> /nix/store/a3148f... * `--profile' / `-p' -> `--switch-profile' / `-S' * `--link' / `-l' -> `--profile' / `-p' * The default profile is stored in $prefix/var/nix/profiles. $prefix/var/nix/links is gone. Profiles can be stored anywhere. * The current profile is now referenced from ~/.nix-profile, not ~/.nix-userenv. * The roots to the garbage collector now have extension `.gcroot', not `.id'.
2004-01-16* Test whether the symlink, not its target, exists.Eelco Dolstra
2004-01-05* Implemented Eelco V.'s `-p' command to switch profiles. It switchesEelco Dolstra
the symlink ~/.nix-userenv to the given argument (which defaults to .../links/current). /etc/profile.d/nix-profile creates this symlink if it doesn't exist yet. Example use: $ nix-env -l my_profile -i foo.nix subversion quake $ nix-env -p my_profile I don't like the term "profile". Let's deprecate it :-)
2003-07-28* Do not set LD_LIBRARY_PATH; it breaks many things. E.g., SuSE's ssh Eelco Dolstra
dynamically links against libdb4 (?!), due to LD_LIBRARY_PATH it picks up our libdb4 instead of SuSE's libdb4, but our libdb4 uses another glibc so loading barfs. Instead, all packages should use rpaths to store library locations in executables/libraries. The disadvantage is that overriding rpaths is harder. (It is possible by invoking the dynamic linker directly, e.g., `/lib/ld-linux.so.2 --ignore-path LIST program args...' to ignore the rpath for the libraries in LIST). It would be better to use DT_RUNPATH, which is consulted by the dynamic linker *after* LD_LIBRARY_PATH but *before* ld.so.cache and the system directories.
2003-07-13* Generate the scripts so that we can substitute the prefixEelco Dolstra
etc. correctly. * Fixed nix-switch.