aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/conf-file.xml
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-04-08 13:00:38 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-04-08 13:00:38 +0000
commit8b70f138e02d62214715f144b133bf1b981911df (patch)
tree43728d72c9c0c190d22b1b5bb11ff2a921917327 /doc/manual/conf-file.xml
parent4271385a73d5e073ddfa7e4a75ab0ae5bef50439 (diff)
* Lots of manual updates, in particular the new `nix-store --query'
options were documented, as well as the Nix configuration file.
Diffstat (limited to 'doc/manual/conf-file.xml')
-rw-r--r--doc/manual/conf-file.xml82
1 files changed, 82 insertions, 0 deletions
diff --git a/doc/manual/conf-file.xml b/doc/manual/conf-file.xml
new file mode 100644
index 000000000..13fac5335
--- /dev/null
+++ b/doc/manual/conf-file.xml
@@ -0,0 +1,82 @@
+<sect1 id="sec-conf-file"><title>Nix configuration file</title>
+
+<para>A number of persistent settings of Nix are stored in the file
+<filename><replaceable>prefix</replaceable>/etc/nix/nix.conf</filename>.
+This file is a list of <literal><replaceable>name</replaceable> =
+<replaceable>value</replaceable></literal> pairs, one per line.
+Comments start with a <literal>#</literal> character. An example
+configuration file is shown in <xref linkend="ex-nix-conf" />.</para>
+
+<example id='ex-nix-conf'><title>Nix expression for GNU Hello</title>
+
+<programlisting>
+gc-keep-outputs = true # Nice for developers
+gc-keep-derivations = true # Idem
+env-keep-derivations = false
+</programlisting>
+</example>
+
+<para>The following variables are currently available:
+
+<variablelist>
+
+ <varlistentry id="conf-gc-keep-outputs"><term><literal>gc-keep-outputs</literal></term>
+
+ <listitem><para>If <literal>true</literal>, the garbage collector
+ will keep the outputs of non-garbage derivations. If
+ <literal>false</literal> (default), outputs will be deleted unless
+ they are GC roots themselves (or reachable from other roots).</para>
+
+ <para>In general, outputs must be registered as roots separately.
+ However, even if the output of a derivation is registered as a
+ root, the collector will still delete store paths that are used
+ only at build time (e.g., the C compiler, or source tarballs
+ downloaded from the network). To prevent it from doing so, set
+ this option to <literal>true</literal>.</para></listitem>
+
+ </varlistentry>
+
+ <varlistentry id="conf-gc-keep-derivations"><term><literal>gc-keep-derivations</literal></term>
+
+ <listitem><para>If <literal>true</literal> (default), the garbage
+ collector will keep the derivations from which non-garbage store
+ paths were built. If <literal>false</literal>, they will be
+ deleted unless explicitly registered as a root (or reachable from
+ other roots).</para>
+
+ <para>Keeping derivation around is useful for querying and
+ traceability (e.g., it allows you to ask with what dependencies or
+ options a store path was built), so by default this option is on.
+ Turn it off to safe a bit of disk space (or a lot if
+ <literal>gc-keep-outputs</literal> is also turned on).</para></listitem>
+
+ </varlistentry>
+
+ <varlistentry><term><literal>env-keep-derivations</literal></term>
+
+ <listitem><para>If <literal>false</literal> (default), derivations
+ are not stored in Nix user environments. That is, the derivation
+ any build-time-only dependencies may be garbage-collected.</para>
+
+ <para>If <literal>true</literal>, when you add a Nix derivation to
+ a user environment, the path of the derivation is stored in the
+ user environment. Thus, the derivation will not be
+ garbage-collected until the user environment generation is deleted
+ (<command>nix-env --delete-generations</command>). To prevent
+ build-time-only dependencies from being collected, you should also
+ turn on <literal>gc-keep-outputs</literal>.</para>
+
+ <para>The difference between this option and
+ <literal>gc-keep-derivations</literal> is that this one is
+ “sticky”: it applies to any user environment created while this
+ option was enabled, while <literal>gc-keep-derivations</literal>
+ only applies at the moment the garbage collector is
+ run.</para></listitem>
+
+ </varlistentry>
+
+</variablelist>
+
+</para>
+
+</sect1>