Nix

From RaySoft

Nix is a cross-platform package manager that uses a deployment model where software is installed into unique directories generated through cryptographic hashes. It is also the name of the tool's programming language. A package's hash takes into account the dependencies, which is claimed to eliminate dependency hell, as an alternative to the typical solution of installing multiple versions of dependencies at the same time. This package management model advertises more reliable, reproducible, and portable packages. [1]

Nix packages are defined through a lazy functional programming language specifically designed for package management. Dependencies are tracked directly in this language through an intermediate format called "derivations". A Nix environment keeps track of references automatically, which allows unused packages to 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 rollback. This also enables multiple users to safely install software on the same system without administrator privileges. [1]

Nix has full support for Linux and macOS and can safely be installed side by side with an existing package manager. [1]

Documentation

Further Information

References

  1. 1.0 1.1 1.2 Wikipedia contributors. "Nix (package manager)." Wikipedia. https://en.wikipedia.org/wiki/Nix_(package_manager) (accessed 20.10.2023)