2020-08-19 19:28:04 +03:00
|
|
|
# Name
|
|
|
|
|
|
|
|
`nix.conf` - Nix configuration file
|
|
|
|
|
|
|
|
# Description
|
|
|
|
|
|
|
|
By default Nix reads settings from the following places:
|
|
|
|
|
|
|
|
- The system-wide configuration file `sysconfdir/nix/nix.conf` (i.e.
|
|
|
|
`/etc/nix/nix.conf` on most systems), or `$NIX_CONF_DIR/nix.conf` if
|
|
|
|
`NIX_CONF_DIR` is set. Values loaded in this file are not forwarded
|
|
|
|
to the Nix daemon. The client assumes that the daemon has already
|
|
|
|
loaded them.
|
|
|
|
|
|
|
|
- If `NIX_USER_CONF_FILES` is set, then each path separated by `:`
|
|
|
|
will be loaded in reverse order.
|
|
|
|
|
|
|
|
Otherwise it will look for `nix/nix.conf` files in `XDG_CONFIG_DIRS`
|
|
|
|
and `XDG_CONFIG_HOME`. If these are unset, it will look in
|
2021-11-04 12:41:29 +02:00
|
|
|
`$HOME/.config/nix/nix.conf`.
|
2020-08-19 19:28:04 +03:00
|
|
|
|
2020-10-21 18:04:36 +03:00
|
|
|
- If `NIX_CONFIG` is set, its contents is treated as the contents of
|
2020-10-20 00:08:50 +03:00
|
|
|
a configuration file.
|
|
|
|
|
2020-10-29 19:17:39 +02:00
|
|
|
The configuration files consist of `name = value` pairs, one per
|
|
|
|
line. Other files can be included with a line like `include path`,
|
|
|
|
where *path* is interpreted relative to the current conf file and a
|
|
|
|
missing file is an error unless `!include` is used instead. Comments
|
2020-08-19 19:28:04 +03:00
|
|
|
start with a `#` character. Here is an example configuration file:
|
|
|
|
|
|
|
|
keep-outputs = true # Nice for developers
|
|
|
|
keep-derivations = true # Idem
|
|
|
|
|
2020-10-29 19:17:39 +02:00
|
|
|
You can override settings on the command line using the `--option`
|
|
|
|
flag, e.g. `--option keep-outputs false`. Every configuration setting
|
|
|
|
also has a corresponding command line flag, e.g. `--max-jobs 16`; for
|
|
|
|
Boolean settings, there are two flags to enable or disable the setting
|
|
|
|
(e.g. `--keep-failed` and `--no-keep-failed`).
|
|
|
|
|
|
|
|
A configuration setting usually overrides any previous value. However,
|
|
|
|
you can prefix the name of the setting by `extra-` to *append* to the
|
|
|
|
previous value. For instance,
|
|
|
|
|
|
|
|
substituters = a b
|
|
|
|
extra-substituters = c d
|
|
|
|
|
|
|
|
defines the `substituters` setting to be `a b c d`. This is also
|
|
|
|
available as a command line flag (e.g. `--extra-substituters`).
|
2020-08-19 19:28:04 +03:00
|
|
|
|
|
|
|
The following settings are currently available:
|
|
|
|
|