GNU Guix

GNU Guix
Stable release
1.4.0[1] Edit this on Wikidata / 19 December 2022; 23 months ago (19 December 2022)
Repository
Written inGuile Scheme, C++ (Nix core)
LicenseGPLv3+
Websiteguix.gnu.org/en/

GNU Guix (/ɡks/[2]) is a functional cross-platform package manager and a tool to instantiate and manage Unix-like operating systems, based on the Nix package manager. Configuration and package recipes are written in Guile Scheme. GNU Guix is the default package manager of the GNU Guix System distribution.[3]

Differing from traditional package managers, Guix (like Nix) utilizes a purely functional deployment model where software is installed into unique directories generated through cryptographic hashes. All dependencies for each software are included within each hash.[4][5] This solves the problem of dependency hell,[6] allowing multiple versions of the same software to coexist which makes packages portable and reproducible. Performing scientific computations in a Guix setup has been proposed as a promising response to the replication crisis.[7][8]

The development of GNU Guix is intertwined with the GNU Guix System,[9] an installable operating system distribution using the Linux-libre kernel and GNU Shepherd init system.[10][11][12]

  1. ^ Ludovic Courtès (19 December 2022). "GNU Guix 1.4.0 released". Retrieved 21 December 2022.
  2. ^ "GNU Guix Reference Manual". www.gnu.org. Retrieved 23 April 2018.
  3. ^ Ludovic Courtès (2013). Functional Package Management with Guix. Madrid, Spain: European Lisp Symposium.
  4. ^ Dolstra, E., de Jonge, M. and Visser, E. "Nix: A Safe and Policy-Free System for Software Deployment." In Damon, L. (Ed.), 18th Large Installation System Administration Conference (LISA '04), pages 79–92, Atlanta, Georgia, USA. USENIX, November 2004.
  5. ^ Dolstra, E. The Purely Functional Software Deployment Model. PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
  6. ^ Prins, P., Suresh, J. and Dolstra, E., "Nix fixes dependency hell on all Linux distributions," Archived December 26, 2008, at the Wayback Machine linux.com, December 22, 2008
  7. ^ Hinsen, Konrad (July 2020). "Staged computation: the technique you did not know you were using". Computing in Science and Engineering. 22 (4): 99–103. Bibcode:2020CSE....22d..99H. doi:10.1109/MCSE.2020.2985508. ISSN 1558-366X. S2CID 219990590. Retrieved 2022-11-04. Open access icon
  8. ^ Vallet, Nicolas; Michonneau, David; Tournier, Simon (4 October 2022). "Toward practical transparent verifiable and long-term reproducible research using Guix" (PDF). Scientific Data. 9 (1): 597. Bibcode:2022NatSD...9..597V. doi:10.1038/s41597-022-01720-9. ISSN 2052-4463. PMC 9532446. PMID 36195618. Retrieved 2022-11-04. Open access icon
  9. ^ "What to call Guix?" (Mailing list). gnu-system-discuss. 2015-01-15.
  10. ^ Programming Interface (GNU Guix Reference Manual)
  11. ^ Guix: A New Package Manager & GNU Distribution - Phoronix
  12. ^ "guix-europe". git.savannah.gnu.org. Archived from the original on 24 January 2021. Retrieved 16 May 2019.