Terms and Definitions in Nix Project: Difference between revisions

imported>Nix
m Add wide page note
imported>Nix
better define derivations, add output path definition
Line 1: Line 1:
{{Wide page}}


== Terms and Definitions ==
== Terms and Definitions ==
Line 24: Line 23:
|| <div id="generation"></div>Generation
|| <div id="generation"></div>Generation
|| Nix
|| Nix
|| A revision of a user environment, newly created every time the system is updated (with old ones being preserved until manually removed). Technically, each generation is simply a link to a specific ''user environment'' in the Nix store. This term connotes the cloning and modification of an existing user environment. Nix's environment rollback facilities rely on Generations. The ''current generation'' is a user's currently selected ''user environment'', and is generally selected via the ''active profile'' (which is just a symlink, normally in ''/nix/var/nix/profiles/'').  
|| A revision of a ''user environment'', newly created every time the system is updated (with old ones being preserved until manually removed). Technically, each generation is simply a link to a specific ''user environment'' in the Nix store. This term connotes the cloning and modification of an existing user environment. Nix's environment rollback facilities rely on Generations. The ''current generation'' is a user's currently selected ''user environment'', and is generally selected via the ''active profile'' (which is just a symlink, normally in ''/nix/var/nix/profiles/'').  
|| [http://nixos.org/nix/manual/#sec-profiles Nix Manual: Profiles]
|| [http://nixos.org/nix/manual/#sec-profiles Nix Manual: Profiles]
|--------
|--------
|| Derivation
|| Derivation
|| Nix
|| Nix
|| A Nix expression which describes a build action. When evaluated, it creates one or more entries in the Nix Store. The <code>nix-instantiate</code> command is the command which creates entries in the Nix Store, while the <code>nix-env</code> and <code>nix-build</code> commands are its user-friendly interface.
|| A Nix expression which describes a build action. High-level derivations (like the ones describing packages in [[Nixpkgs]]), get evaluated into low-level derivations (called ''store derivations'' &mdash; because they wind up in the ''Nix store''). <code>nix-instantiate</code> is the command which translates high-level derivations into low-level ones. <code>nix-store --realise</code> can then check and finish their build for the ''nix store'', producing an ''output path''. <code>nix-build</code> is a user-friendly wrapper for the previous commands. Derivations are analogous to package definitions in other tools.
|| [http://nixos.org/nix/manual/#gloss-derivation Nix Manual: Glossary -> Derivation] <br> [http://nixos.org/nix/manual/#ssec-derivation Nix Manual: Derivation]
|| [http://nixos.org/nix/manual/#gloss-derivation Nix Manual: Glossary - Derivation] <br> [http://nixos.org/nix/manual/#ssec-derivation Nix Manual: Derivation]
|--------
|| Output path
|| Nix
|| A ''store path'' produced by a derivation. These are generally actual packages, or pieces of them.
|| [http://nixos.org/nix/manual/#ssec-derivation Nix Manual: Derivation]
|--------
|--------
|| <code>rec { }</code>
|| <code>rec { }</code>