Nix (package manager): Difference between revisions
No edit summary |
Marked this version for translation |
||
| (4 intermediate revisions by 2 users 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]]. | ||
== Usage == <!--T:2--> | == Usage == <!--T:2--> | ||
<!--T:3--> | === Installation === <!--T:3--> | ||
<!--T:36--> | |||
On [[<tvar name="1">NixOS</tvar>|NixOS]], Nix is automatically installed. | On [[<tvar name="1">NixOS</tvar>|NixOS]], Nix is automatically installed. | ||
| Line 20: | Line 21: | ||
The [[<tvar name="1">Nix (command line utilities)</tvar>|Nix commands]] are documented in the [<tvar name="2">https://nix.dev/manual/nix/stable/command-ref/</tvar> Nix reference manual]: main commands, utilities and experimental commands. Prior to version 2.0 (released in February 2018) there have been different commands. | The [[<tvar name="1">Nix (command line utilities)</tvar>|Nix commands]] are documented in the [<tvar name="2">https://nix.dev/manual/nix/stable/command-ref/</tvar> Nix reference manual]: main commands, utilities and experimental commands. Prior to version 2.0 (released in February 2018) there have been different commands. | ||
<!--T:7--> | === Configuration === <!--T:7--> | ||
<!--T:37--> | |||
On NixOS, Nix can be configured using the [<tvar name="1">https://search.nixos.org/options?query=nix</tvar> <code>nix</code> option]. | On NixOS, Nix can be configured using the [<tvar name="1">https://search.nixos.org/options?query=nix</tvar> <code>nix</code> option]. | ||
| Line 67: | Line 69: | ||
<!--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 80: | ||
<!--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 86: | ||
<!--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] | ||
==Notes== <!--T:25--> | |||
</translate> | |||
<references /> | <references /> | ||
[[Category:Pedias]] | [[Category:Pedias]] | ||
[[Category:Nix]] | [[Category:Nix]] | ||
[[Category:Incomplete]] | [[Category:Incomplete]] | ||
[[Category:Software]] | [[Category:Software]] | ||