Improve explanation of NIX_PATH prefix syntax

The previous wording seemed to imply that the "channel:" syntax would resolve to
a github archive URL, which is not the case.
This commit is contained in:
Keshav Kini 2021-06-03 17:59:39 -07:00
parent bb06640971
commit f35f9af787

View file

@ -10,35 +10,39 @@ Most Nix commands interpret the following environment variables:
A colon-separated list of directories used to look up Nix A colon-separated list of directories used to look up Nix
expressions enclosed in angle brackets (i.e., `<path>`). For expressions enclosed in angle brackets (i.e., `<path>`). For
instance, the value instance, the value
/home/eelco/Dev:/etc/nixos /home/eelco/Dev:/etc/nixos
will cause Nix to look for paths relative to `/home/eelco/Dev` and will cause Nix to look for paths relative to `/home/eelco/Dev` and
`/etc/nixos`, in this order. It is also possible to match paths `/etc/nixos`, in this order. It is also possible to match paths
against a prefix. For example, the value against a prefix. For example, the value
nixpkgs=/home/eelco/Dev/nixpkgs-branch:/etc/nixos nixpkgs=/home/eelco/Dev/nixpkgs-branch:/etc/nixos
will cause Nix to search for `<nixpkgs/path>` in will cause Nix to search for `<nixpkgs/path>` in
`/home/eelco/Dev/nixpkgs-branch/path` and `/etc/nixos/nixpkgs/path`. `/home/eelco/Dev/nixpkgs-branch/path` and `/etc/nixos/nixpkgs/path`.
If a path in the Nix search path starts with `http://` or If a path in the Nix search path starts with `http://` or
`https://`, it is interpreted as the URL of a tarball that will be `https://`, it is interpreted as the URL of a tarball that will be
downloaded and unpacked to a temporary location. The tarball must downloaded and unpacked to a temporary location. The tarball must
consist of a single top-level directory. For example, setting consist of a single top-level directory. For example, setting
`NIX_PATH` to `NIX_PATH` to
nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-15.09.tar.gz nixpkgs=https://github.com/NixOS/nixpkgs/archive/master.tar.gz
tells Nix to download the latest revision in the Nixpkgs/NixOS 15.09 tells Nix to download and use the current contents of the
channel. `master` branch in the `nixpkgs` repository.
A following shorthand can be used to refer to the official channels: The URLs of the tarballs from the official nixos.org channels (see
[the manual for `nix-channel`](nix-channel.md)) can be abbreviated
nixpkgs=channel:nixos-15.09 as `channel:<channel-name>`. For instance, the following two
values of `NIX_PATH` are equivalent:
The search path can be extended using the `-I` option, which takes
precedence over `NIX_PATH`. nixpkgs=channel:nixos-21.05
nixpkgs=https://nixos.org/channels/nixos-21.05/nixexprs.tar.xz
The Nix search path can also be extended using the `-I` option to
many Nix commands, which takes precedence over `NIX_PATH`.
- `NIX_IGNORE_SYMLINK_STORE`\ - `NIX_IGNORE_SYMLINK_STORE`\
Normally, the Nix store directory (typically `/nix/store`) is not Normally, the Nix store directory (typically `/nix/store`) is not
@ -50,7 +54,7 @@ Most Nix commands interpret the following environment variables:
builds are deployed to machines where `/nix/store` resolves builds are deployed to machines where `/nix/store` resolves
differently. If you are sure that youre not going to do that, you differently. If you are sure that youre not going to do that, you
can set `NIX_IGNORE_SYMLINK_STORE` to `1`. can set `NIX_IGNORE_SYMLINK_STORE` to `1`.
Note that if youre symlinking the Nix store so that you can put it Note that if youre symlinking the Nix store so that you can put it
on another file system than the root file system, on Linux youre on another file system than the root file system, on Linux youre
better off using `bind` mount points, e.g., better off using `bind` mount points, e.g.,
@ -59,7 +63,7 @@ Most Nix commands interpret the following environment variables:
$ mkdir /nix $ mkdir /nix
$ mount -o bind /mnt/otherdisk/nix /nix $ mount -o bind /mnt/otherdisk/nix /nix
``` ```
Consult the mount 8 manual page for details. Consult the mount 8 manual page for details.
- `NIX_STORE_DIR`\ - `NIX_STORE_DIR`\