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. | |||