2006-08-21 16:05:11 +00:00
|
|
|
|
<appendix xmlns="http://docbook.org/ns/docbook"
|
|
|
|
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
|
|
|
|
|
|
|
|
<title>Glossary</title>
|
|
|
|
|
|
2005-04-01 15:34:23 +00:00
|
|
|
|
|
|
|
|
|
<glosslist>
|
|
|
|
|
|
|
|
|
|
|
2006-08-21 16:05:11 +00:00
|
|
|
|
<glossentry xml:id="gloss-derivation"><glossterm>derivation</glossterm>
|
2005-04-01 15:34:23 +00:00
|
|
|
|
|
|
|
|
|
<glossdef><para>A description of a build action. The result of a
|
2005-04-05 15:28:30 +00:00
|
|
|
|
derivation is a store object. Derivations are typically specified
|
|
|
|
|
in Nix expressions using the <link
|
|
|
|
|
linkend="ssec-derivation"><function>derivation</function>
|
|
|
|
|
primitive</link>. These are translated into low-level
|
|
|
|
|
<emphasis>store derivations</emphasis> (implicitly by
|
|
|
|
|
<command>nix-env</command> and <command>nix-build</command>, or
|
|
|
|
|
explicitly by <command>nix-instantiate</command>).</para></glossdef>
|
2005-04-01 15:34:23 +00:00
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<glossentry><glossterm>store</glossterm>
|
|
|
|
|
|
|
|
|
|
<glossdef><para>The location in the file system where store objects
|
|
|
|
|
live. Typically <filename>/nix/store</filename>.</para></glossdef>
|
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<glossentry><glossterm>store path</glossterm>
|
|
|
|
|
|
|
|
|
|
<glossdef><para>The location in the file system of a store object,
|
|
|
|
|
i.e., an immediate child of the Nix store
|
|
|
|
|
directory.</para></glossdef>
|
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<glossentry><glossterm>store object</glossterm>
|
|
|
|
|
|
|
|
|
|
<glossdef><para>A file that is an immediate child of the Nix store
|
|
|
|
|
directory. These can be regular files, but also entire directory
|
|
|
|
|
trees. Store objects can be sources (objects copied from outside of
|
|
|
|
|
the store), derivation outputs (objects produced by running a build
|
|
|
|
|
action), or derivations (files describing a build
|
|
|
|
|
action).</para></glossdef>
|
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
2006-08-21 16:05:11 +00:00
|
|
|
|
<glossentry xml:id="gloss-substitute"><glossterm>substitute</glossterm>
|
2005-04-01 15:34:23 +00:00
|
|
|
|
|
|
|
|
|
<glossdef><para>A substitute is a command invocation stored in the
|
|
|
|
|
Nix database that describes how to build a store object, bypassing
|
2017-07-07 18:38:33 +00:00
|
|
|
|
the normal build mechanism (i.e., derivations). Typically, the
|
2005-04-01 15:34:23 +00:00
|
|
|
|
substitute builds the store object by downloading a pre-built
|
|
|
|
|
version of the store object from some server.</para></glossdef>
|
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<glossentry><glossterm>purity</glossterm>
|
|
|
|
|
|
|
|
|
|
<glossdef><para>The assumption that equal Nix derivations when run
|
|
|
|
|
always produce the same output. This cannot be guaranteed in
|
|
|
|
|
general (e.g., a builder can rely on external inputs such as the
|
|
|
|
|
network or the system time) but the Nix model assumes
|
|
|
|
|
it.</para></glossdef>
|
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<glossentry><glossterm>Nix expression</glossterm>
|
|
|
|
|
|
2007-12-04 11:42:58 +00:00
|
|
|
|
<glossdef><para>A high-level description of software packages and
|
2005-04-01 15:34:23 +00:00
|
|
|
|
compositions thereof. Deploying software using Nix entails writing
|
2007-12-04 11:42:58 +00:00
|
|
|
|
Nix expressions for your packages. Nix expressions are translated
|
2005-04-01 15:34:23 +00:00
|
|
|
|
to derivations that are stored in the Nix store. These derivations
|
|
|
|
|
can then be built.</para></glossdef>
|
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
2006-08-21 16:05:11 +00:00
|
|
|
|
<glossentry xml:id="gloss-reference"><glossterm>reference</glossterm>
|
2005-04-08 13:00:38 +00:00
|
|
|
|
|
2018-04-12 09:23:24 +00:00
|
|
|
|
<glossdef>
|
|
|
|
|
<para>A store path <varname>P</varname> is said to have a
|
|
|
|
|
reference to a store path <varname>Q</varname> if the store object
|
|
|
|
|
at <varname>P</varname> contains the path <varname>Q</varname>
|
|
|
|
|
somewhere. The <emphasis>references</emphasis> of a store path are
|
|
|
|
|
the set of store paths to which it has a reference.
|
|
|
|
|
</para>
|
|
|
|
|
<para>A derivation can reference other derivations and sources
|
|
|
|
|
(but not output paths), whereas an output path only references other
|
|
|
|
|
output paths.
|
|
|
|
|
</para>
|
|
|
|
|
</glossdef>
|
2005-04-08 13:00:38 +00:00
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
2018-04-12 09:23:24 +00:00
|
|
|
|
<glossentry xml:id="gloss-reachable"><glossterm>reachable</glossterm>
|
|
|
|
|
|
|
|
|
|
<glossdef><para>A store path <varname>Q</varname> is reachable from
|
|
|
|
|
another store path <varname>P</varname> if <varname>Q</varname> is in the
|
|
|
|
|
<link linked="gloss-closure">closure</link> of the
|
|
|
|
|
<link linkend="gloss-reference">references</link> relation.
|
|
|
|
|
</para></glossdef>
|
|
|
|
|
</glossentry>
|
2005-04-08 13:00:38 +00:00
|
|
|
|
|
2006-08-21 16:05:11 +00:00
|
|
|
|
<glossentry xml:id="gloss-closure"><glossterm>closure</glossterm>
|
2005-04-05 15:28:30 +00:00
|
|
|
|
|
|
|
|
|
<glossdef><para>The closure of a store path is the set of store
|
|
|
|
|
paths that are directly or indirectly “reachable” from that store
|
2005-04-08 13:00:38 +00:00
|
|
|
|
path; that is, it’s the closure of the path under the <link
|
2018-04-12 09:23:24 +00:00
|
|
|
|
linkend="gloss-reference">references</link> relation. For a package, the
|
|
|
|
|
closure of its derivation is equivalent to the build-time
|
|
|
|
|
dependencies, while the closure of its output path is equivalent to its
|
|
|
|
|
runtime dependencies. For correct deployment it is necessary to deploy whole
|
|
|
|
|
closures, since otherwise at runtime files could be missing. The command
|
|
|
|
|
<command>nix-store -qR</command> prints out closures of store paths.
|
|
|
|
|
</para>
|
|
|
|
|
<para>As an example, if the store object at path <varname>P</varname> contains
|
|
|
|
|
a reference to path <varname>Q</varname>, then <varname>Q</varname> is
|
|
|
|
|
in the closure of <varname>P</varname>. Further, if <varname>Q</varname>
|
|
|
|
|
references <varname>R</varname> then <varname>R</varname> is also in
|
|
|
|
|
the closure of <varname>P</varname>.
|
|
|
|
|
</para></glossdef>
|
2005-04-08 13:00:38 +00:00
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
2006-08-21 16:05:11 +00:00
|
|
|
|
<glossentry xml:id="gloss-output-path"><glossterm>output path</glossterm>
|
2005-04-08 13:00:38 +00:00
|
|
|
|
|
|
|
|
|
<glossdef><para>A store path produced by a derivation.</para></glossdef>
|
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
2006-08-21 16:05:11 +00:00
|
|
|
|
<glossentry xml:id="gloss-deriver"><glossterm>deriver</glossterm>
|
2005-04-08 13:00:38 +00:00
|
|
|
|
|
|
|
|
|
<glossdef><para>The deriver of an <link
|
|
|
|
|
linkend="gloss-output-path">output path</link> is the store
|
|
|
|
|
derivation that built it.</para></glossdef>
|
2005-04-05 15:28:30 +00:00
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
2006-08-21 16:05:11 +00:00
|
|
|
|
<glossentry xml:id="gloss-validity"><glossterm>validity</glossterm>
|
2005-04-07 10:47:58 +00:00
|
|
|
|
|
|
|
|
|
<glossdef><para>A store path is considered
|
|
|
|
|
<emphasis>valid</emphasis> if it exists in the file system, is
|
|
|
|
|
listed in the Nix database as being valid, and if all paths in its
|
|
|
|
|
closure are also valid.</para></glossdef>
|
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
2006-08-21 16:05:11 +00:00
|
|
|
|
<glossentry xml:id="gloss-user-env"><glossterm>user environment</glossterm>
|
2005-04-10 20:54:21 +00:00
|
|
|
|
|
|
|
|
|
<glossdef><para>An automatically generated store object that
|
|
|
|
|
consists of a set of symlinks to “active” applications, i.e., other
|
|
|
|
|
store paths. These are generated automatically by <link
|
|
|
|
|
linkend="sec-nix-env"><command>nix-env</command></link>. See <xref
|
|
|
|
|
linkend="sec-profiles" />.</para>
|
|
|
|
|
|
|
|
|
|
</glossdef>
|
2018-04-12 09:23:24 +00:00
|
|
|
|
|
2005-04-10 20:54:21 +00:00
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
2006-08-21 16:05:11 +00:00
|
|
|
|
<glossentry xml:id="gloss-profile"><glossterm>profile</glossterm>
|
2005-04-10 20:54:21 +00:00
|
|
|
|
|
|
|
|
|
<glossdef><para>A symlink to the current <link
|
|
|
|
|
linkend="gloss-user-env">user environment</link> of a user, e.g.,
|
|
|
|
|
<filename>/nix/var/nix/profiles/default</filename>.</para></glossdef>
|
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
2012-11-06 14:49:53 +00:00
|
|
|
|
<glossentry xml:id="gloss-nar"><glossterm>NAR</glossterm>
|
|
|
|
|
|
|
|
|
|
<glossdef><para>A <emphasis>N</emphasis>ix
|
|
|
|
|
<emphasis>AR</emphasis>chive. This is a serialisation of a path in
|
|
|
|
|
the Nix store. It can contain regular files, directories and
|
|
|
|
|
symbolic links. NARs are generated and unpacked using
|
|
|
|
|
<command>nix-store --dump</command> and <command>nix-store
|
|
|
|
|
--restore</command>.</para></glossdef>
|
|
|
|
|
|
|
|
|
|
</glossentry>
|
|
|
|
|
|
|
|
|
|
|
2005-04-10 20:54:21 +00:00
|
|
|
|
|
2005-04-01 15:34:23 +00:00
|
|
|
|
</glosslist>
|
|
|
|
|
|
|
|
|
|
|
2005-04-05 15:28:30 +00:00
|
|
|
|
</appendix>
|