147 lines
5.9 KiB
XML
147 lines
5.9 KiB
XML
<section xmlns="http://docbook.org/ns/docbook"
|
||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||
xml: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 xml:id='ex-nix-conf'><title>Nix configuration file</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 xml: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 xml: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 xml:id="conf-gc-reserved-space"><term><literal>gc-reserved-space</literal></term>
|
||
|
||
<listitem><para>This option specifies how much space should be
|
||
reserved in normal use so that the garbage collector can run
|
||
succesfully. Since the garbage collector must perform Berkeley DB
|
||
transactions, it needs some disk space for itself. However, when
|
||
the disk is full, this space is not available, so the collector
|
||
would not be able to run precisely when it is most needed.</para>
|
||
|
||
<para>For this reason, when Nix is run, it allocates a file
|
||
<filename>/nix/var/nix/db/reserved</filename> of the size
|
||
specified by this option. When the garbage collector is run, this
|
||
file is deleted before the Berkeley DB environment is opened.
|
||
This should give it enough room to proceed.</para>
|
||
|
||
<para>The default is <literal>1048576</literal> (1
|
||
MiB).</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>
|
||
|
||
|
||
<varlistentry xml:id="conf-build-max-jobs"><term><literal>build-max-jobs</literal></term>
|
||
|
||
<listitem><para>This option defines the maximum number of jobs
|
||
that Nix will try to build in parallel. The default is
|
||
<literal>1</literal>. You should generally set it to the number
|
||
of CPUs in your system (e.g., <literal>2</literal> on a Athlon 64
|
||
X2). It can be overriden using the <option
|
||
linkend='opt-max-jobs'>--max-jobs</option> (<option>-j</option>)
|
||
command line switch.</para></listitem>
|
||
|
||
</varlistentry>
|
||
|
||
|
||
<varlistentry><term><literal>system</literal></term>
|
||
|
||
<listitem><para>This option specifies the canonical Nix system
|
||
name of the current installation, such as
|
||
<literal>i686-linux</literal> or
|
||
<literal>powerpc-darwin</literal>. Nix can only build derivations
|
||
whose <literal>system</literal> attribute equals the value
|
||
specified here. In general, it never makes sense to modify this
|
||
value from its default, since you can use it to ‘lie’ about the
|
||
platform you are building on (e.g., perform a Mac OS build on a
|
||
Linux machine; the result would obviously be wrong). It only
|
||
makes sense if the Nix binaries can run on multiple platforms,
|
||
e.g., ‘universal binaries’ that run on <literal>powerpc-darwin</literal> and
|
||
<literal>i686-darwin</literal>.</para>
|
||
|
||
<para>It defaults to the canonical Nix system name detected by
|
||
<filename>configure</filename> at build time.</para></listitem>
|
||
|
||
</varlistentry>
|
||
|
||
|
||
</variablelist>
|
||
|
||
</para>
|
||
|
||
|
||
</section>
|