Nix package manager


Nix is a cross-platform package manager that utilizes a purely functional deployment model where software is installed into unique directories generated through cryptographic hashes. Dependencies from each software installation are included within each hash, solving the problem of dependency hell. This novel approach to package management promises to generate more reliable, reproducible, and portable packages.
Nix packages are defined through a lazy functional programming language specifically designed for package management. Dependencies are tracked directly in this language through special values called "derivations" which are installed by Nix lazily. Nix keeps track of these references automatically so that installed packages can be garbage collected when no other package depends on them. At the cost of greater storage requirements, all upgrades in Nix are guaranteed to be both atomic and capable of efficient roll-back. This also enables multiple users to safely install software on the same system without administrator privileges.
Nix has full support for Linux and macOS and can safely be installed side-by-side with an existing package manager, though some workarounds are required for Catalina.

NixOS

is a Linux distribution using Nix consistently for every piece of software in the system including the Linux kernel.