Nix (package manager): Difference between revisions

Roxwize (talk | contribs)
No edit summary
Roxwize (talk | contribs)
Marked this version for translation
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{Navbox Nix}}
{{Navbox Nix}}
{{Disambiguation|message=<translate>This article is about the Nix package manager. Not to be confused with the [[<tvar name="1">Nix ecosystem</tvar>|Nix ecosystem]], the [[<tvar name="2">Nix (language)</tvar>|Nix language]] or the [[<tvar name="3">Nix (command)</tvar>|Nix command]].</translate>}}
{{Disambiguation|message=<translate><!--T:35--> This article is about the Nix package manager. Not to be confused with the [[<tvar name="1">Nix ecosystem</tvar>|Nix ecosystem]], the [[<tvar name="2">Nix (language)</tvar>|Nix language]] or the [[<tvar name="3">Nix (command)</tvar>|Nix command]].</translate>}}


<translate>
<translate><!--T:1-->
Nix is a package manager and build system that parses reproducible build instructions specified in the [[<tvar name="1">Nix (language)</tvar>|Nix Expression Language]], a pure functional language with lazy evaluation. Nix expressions are pure functions<ref>Values cannot change during computation. Functions always produce the same output if their input does not change.</ref> taking dependencies as arguments and producing a ''[[<tvar name="2">Derivations</tvar>|derivation]]'' specifying a reproducible build environment for the package. Nix stores the results of the build in unique addresses specified by a hash of the complete dependency tree, creating an immutable package store (aka the [[#Nix store|nix store]]) that allows for atomic upgrades, rollbacks and concurrent installation of different versions of a package, essentially eliminating [[<tvar name="3">Wikipedia:Dependency hell</tvar>|dependency hell]].
Nix is a package manager and build system that parses reproducible build instructions specified in the [[<tvar name="1">Nix (language)</tvar>|Nix Expression Language]], a pure functional language with lazy evaluation. Nix expressions are pure functions<ref>Values cannot change during computation. Functions always produce the same output if their input does not change.</ref> taking dependencies as arguments and producing a ''[[<tvar name="2">Derivations</tvar>|derivation]]'' specifying a reproducible build environment for the package. Nix stores the results of the build in unique addresses specified by a hash of the complete dependency tree, creating an immutable package store (aka the [[#Nix store|nix store]]) that allows for atomic upgrades, rollbacks and concurrent installation of different versions of a package, essentially eliminating [[<tvar name="3">Wikipedia:Dependency hell</tvar>|dependency hell]].


Line 67: Line 67:
<!--T:17-->
<!--T:17-->
Sandboxing is enabled by default on Linux, and disabled by default on macOS.
Sandboxing is enabled by default on Linux, and disabled by default on macOS.
In pull requests for [https://github.com/NixOS/nixpkgs/ Nixpkgs] people are asked to test builds with sandboxing enabled (see <code>Tested using sandboxing</code> in the pull request template) because in [https://nixos.org/hydra/ official Hydra builds] sandboxing is also used.
In pull requests for [<tvar name="1">https://github.com/NixOS/nixpkgs/</tvar> Nixpkgs] people are asked to test builds with sandboxing enabled (see <code>Tested using sandboxing</code> in the pull request template) because in [<tvar name="2">https://nixos.org/hydra/</tvar> official Hydra builds] sandboxing is also used.


<!--T:18-->
<!--T:18-->
Line 78: Line 78:


<!--T:21-->
<!--T:21-->
* [https://code.tvl.fyi/tree/tvix tvix]
* [<tvar name="1">https://code.tvl.fyi/tree/tvix</tvar> tvix]


<!--T:22-->
<!--T:22-->
Line 84: Line 84:


<!--T:23-->
<!--T:23-->
* [https://lix.systems/ lix]
* [<tvar name="1">https://lix.systems/</tvar> lix]


<!--T:24-->
<!--T:24-->
Earlier attempts can be found on [https://riir-nix.github.io/ riir-nix]
Earlier attempts can be found on [<tvar name="1">https://riir-nix.github.io/</tvar> riir-nix]


<!--T:25-->
<!--T:25-->