Nix ecosystem: Difference between revisions
imported>Ixxie No edit summary |
imported>Ixxie Wrote up the first paragraphs. |
||
Line 1: | Line 1: | ||
{{Expansion|This article is a stub.}} | {{Expansion|This article is a stub.}} | ||
The ''Nix Ecosystem'' is a collection of technologies built around the [[Nix Package Manager]] | The ''Nix Ecosystem'' is a collection of technologies built around the [[Nix Package Manager]], which uses a purely functional packaging language called the [[Nix Expression Language]] to specify reproducible build processes. Nix stores the results into hashed addresses, allowing multiple versions of the same package to live side by side. This allowed the creation of [[NixOS]], a Linux distribution with ''all'' components built by Nix, and thus supporting reproducible and declarative system-wide configuration management as well as atomic upgrades and rollbacks. A community maintained package repository called [[Nixpkgs]] is the largest Nix package repository, and also hosts the NixOS modules. In addition to these the community developed [[NixOps]], a Nix based deployment and provisioning tool, and [[Hydra]], a Nix based continuous build system. | ||
== The Nix Package Manager & Expression Language == | |||
''Nix expressions'' are pure functions taking dependencies as arguments and producing ''derivation'' specifying a reproducible build environment for the package. The package is then built the ''Nix store'', receiving a unique address specified by a cryptographic hash of the build's dependency graph followed by the package name and version, for example <code>/nix/store/nawl092prjblbhvv16kxxbk6j9gkgcqm-git-2.14.1</code>. This allows Nix to simultaneously install different versions of the same package, and even different builds of the same version, for example variants built with different compilers. | |||
Revision as of 14:17, 9 September 2017
The Nix Ecosystem is a collection of technologies built around the Nix Package Manager, which uses a purely functional packaging language called the Nix Expression Language to specify reproducible build processes. Nix stores the results into hashed addresses, allowing multiple versions of the same package to live side by side. This allowed the creation of NixOS, a Linux distribution with all components built by Nix, and thus supporting reproducible and declarative system-wide configuration management as well as atomic upgrades and rollbacks. A community maintained package repository called Nixpkgs is the largest Nix package repository, and also hosts the NixOS modules. In addition to these the community developed NixOps, a Nix based deployment and provisioning tool, and Hydra, a Nix based continuous build system.
The Nix Package Manager & Expression Language
Nix expressions are pure functions taking dependencies as arguments and producing derivation specifying a reproducible build environment for the package. The package is then built the Nix store, receiving a unique address specified by a cryptographic hash of the build's dependency graph followed by the package name and version, for example /nix/store/nawl092prjblbhvv16kxxbk6j9gkgcqm-git-2.14.1
. This allows Nix to simultaneously install different versions of the same package, and even different builds of the same version, for example variants built with different compilers.