110 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<appendix><title>Glossary</title>
 | 
						|
 | 
						|
<glosslist>
 | 
						|
 | 
						|
 | 
						|
<glossentry id="gloss-derivation"><glossterm>derivation</glossterm>
 | 
						|
 | 
						|
  <glossdef><para>A description of a build action.  The result of a
 | 
						|
  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>
 | 
						|
 | 
						|
</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>
 | 
						|
 | 
						|
 | 
						|
<glossentry id="gloss-substitute"><glossterm>substitute</glossterm>
 | 
						|
 | 
						|
  <glossdef><para>A substitute is a command invocation stored in the
 | 
						|
  Nix database that describes how to build a store object, bypassing
 | 
						|
  normal the build mechanism (i.e., derivations).  Typically, the
 | 
						|
  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>
 | 
						|
 | 
						|
  <glossdef><para>A high-level description of software components and
 | 
						|
  compositions thereof.  Deploying software using Nix entails writing
 | 
						|
  Nix expressions for your components.  Nix expressions are translated
 | 
						|
  to derivations that are stored in the Nix store.  These derivations
 | 
						|
  can then be built.</para></glossdef>
 | 
						|
 | 
						|
</glossentry>
 | 
						|
 | 
						|
 | 
						|
<glossentry><glossterm>closure</glossterm>
 | 
						|
 | 
						|
  <glossdef><para>The closure of a store path is the set of store
 | 
						|
  paths that are directly or indirectly “reachable” from that store
 | 
						|
  path.  For instance, 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>.  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></glossdef>
 | 
						|
 | 
						|
</glossentry>
 | 
						|
 | 
						|
 | 
						|
<glossentry id="gloss-validity"><glossterm>validity</glossterm>
 | 
						|
 | 
						|
  <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>
 | 
						|
 | 
						|
 | 
						|
</glosslist>
 | 
						|
 | 
						|
 | 
						|
</appendix>
 |