:PROPERTIES: :ID: 3b3fdcbf-eb40-4c89-81f3-9d937a0be53c :END: #+title: Nix package manager #+date: "2020-09-04 16:07:47 +08:00" #+date_modified: "2021-05-04 20:52:09 +08:00" #+language: en [[https://nixos.org/][Nix]] is a package manager that pioneered [[id:bfed6daf-4c2b-4426-bab9-2804caa5e079][Functional package management]] which addresses the criticisms of traditional Unix systems while making it as a specialized tool for [[id:6eeb7a24-b662-46d6-9ece-00a5028ff4d8][Reproducible research]]. Holistically, Nix is made up of at least four components: the store, the language, the derivations, and the sandbox. - The store is a immutable centralized location where all of the outputs are placed. - The derivations are essentially build instructions. - The language (also called as Nix but we'll refer to it as Nixlang) is a domain-specific language for creating derivations. - The build process can be locked in a sandbox, improving the reproducibility of a setup and lowering the attack surface for a malicious package.