aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/src/command-ref/conf-file-prefix.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manual/src/command-ref/conf-file-prefix.md')
-rw-r--r--doc/manual/src/command-ref/conf-file-prefix.md51
1 files changed, 51 insertions, 0 deletions
diff --git a/doc/manual/src/command-ref/conf-file-prefix.md b/doc/manual/src/command-ref/conf-file-prefix.md
new file mode 100644
index 000000000..3140170ab
--- /dev/null
+++ b/doc/manual/src/command-ref/conf-file-prefix.md
@@ -0,0 +1,51 @@
+# 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
+ `$HOME/.config/nix.conf`.
+
+ - If `NIX_CONFIG` is set, its contents is treated as the contents of
+ a configuration file.
+
+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
+start with a `#` character. Here is an example configuration file:
+
+ keep-outputs = true # Nice for developers
+ keep-derivations = true # Idem
+
+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`).
+
+The following settings are currently available:
+