Nix ecosystem

From NixOS Wiki
Revision as of 14:20, 9 September 2017 by imported>Ixxie

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 NixOS packages (known as 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.

NixOS

Nixpkgs

NixOps

Hydra

Other applications