GNU Guix

GNU Guix (/ɡks/[2]) is a cross-platform package manager and a tool to instantiate and manage Unix-like operating systems, based on the Nix package manager with Guile Scheme APIs and specializes in providing exclusively free software.[3] GNU Guix is the default package manager of the GNU Guix System GNU/Linux distribution.

GNU Guix
Stable release
1.1.0[1] / April 15, 2020 (2020-04-15)
Repository
Written inGuile Scheme, C++ (Nix core)
LicenseGPLv3+
Websiteguix.gnu.org

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. Dependencies from each software are included within each hash, solving the problem of dependency hell.[4] This approach to package management promises to generate more reliable, reproducible, and portable packages.[5][6]

Guix packages are defined through functional Guile Scheme APIs specifically designed for package management. Dependencies are tracked directly in this language through special values called "derivations" which are evaluated by the Guix daemon lazily. Guix 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 Guix are guaranteed to be both atomic and efficiently rolled back. This also enables multiple users to safely install software on the same system without administrator privileges. The extra storage requirements translates to greater bandwidth usage when binary substitutes are downloaded compared to distributions such as Debian. If the user chooses to build everything from source even larger storage space and bandwidth is required.

The development of GNU Guix is intertwined with GNU Guix System (until Guix 1.0: Guix System Distribution [GuixSD]),[7] a complete installable GNU system using the Linux-libre kernel and GNU Shepherd init system.[8][9]

The roll-back feature of Guix is inherited from the design of Nix and is not found in any of the popular Linux distributions such as Debian and its derivatives, Arch Linux and its derivatives, or in other major distributions such as Fedora, CentOS or OpenSUSE.

The project is coordinated over the Internet by a team of volunteers and is incorporated in the French non-profit Guix Europe with members of the community.[10]

Guix System (operating system)

History

The GNU Project announced in November 2012 the first release of GNU Guix, a functional package manager based on Nix that provides, among other things, Guile Scheme APIs.[16] The project was started in June 2012 by Ludovic Courtès, one of the GNU Guile hackers.[17] On August 20, 2015, it was announced that Guix had been ported to GNU Hurd.[18]

Releases

The project has no fixed release schedule and has until now released approximately every 6 months.

Version Announcement Supported architectures Packages
0.1 (alpha) Courtès, Ludovic (18 January 2013). "GNU Guix 0.1 released (alpha)". i686, x86_64 ~150
0.2 (alpha) Courtès, Ludovic (12 May 2013). "GNU Guix 0.2 released (alpha)". i686, x86_64 ~400
0.3 Courtès, Ludovic (17 Jul 2013). "GNU Guix 0.3 released". i686, x86_64 ~430
0.4 Courtès, Ludovic (27 Sep 2013). "GNU Guix 0.4 released". i686, x86_64 ~490
0.5 Courtès, Ludovic (11 Dec 2013). "GNU Guix 0.5 released". i686, x86_64 ~600
0.6 Courtès, Ludovic (9 Apr 2014). "GNU Guix 0.6 released". i686, x86_64 ~691
0.7 Courtès, Ludovic (25 Jul 2014). "GNU Guix 0.7 released". i686, x86_64 ~825
0.8 Courtès, Ludovic (18 Nov 2014). "GNU Guix 0.8 released". i686, x86_64, mips64el ~987
0.8.1 Courtès, Ludovic (29 Jan 2015). "GNU Guix 0.8.1 released". i686, x86_64, mips64el, armv7 ~1151
0.8.2 Courtès, Ludovic (14 May 2015). "GNU Guix 0.8.2 released". i686, x86_64, mips64el, armv7 ~1869
0.8.3 Courtès, Ludovic (22 Jul 2015). "GNU Guix 0.8.3 released". i686, x86_64, mips64el, armv7 ~2048
0.9.0 Courtès, Ludovic (5 Nov 2015). "GNU Guix 0.9.0 released". i686, x86_64, mips64el, armv7 ~2591
0.10.0 Courtès, Ludovic (29 Mar 2016). "GNU Guix & GuixSD 0.10.0 released". i686, x86_64, mips64el, armv7 ~3230
0.11.0 Courtès, Ludovic (3 Aug 2016). "GNU Guix & GuixSD 0.11.0 released". i686, x86_64, mips64el, armv7 ~3714
0.12.0 Wurmus, Ricardo (21 Dec 2016). "GNU Guix & GuixSD 0.12.0 released". i686, x86_64, mips64el, armv7 ~4567
0.13.0 Courtès, Ludovic (22 May 2017). "GNU Guix & GuixSD 0.13.0 released". i686, x86_64, mips64el, armv7, aarch64 ~5407
0.14.0 Courtès, Ludovic (7 Dec 2017). "GNU Guix & GuixSD 0.14.0 released". i686, x86_64, mips64el, armv7, aarch64 ~6618
0.15.0 Courtès, Ludovic (6 Jul 2018). "GNU Guix & GuixSD 0.15.0 released". i686, x86_64, mips64el, armv7, aarch64 ~7857
0.16.0 Courtès, Ludovic (6 Dec 2018). "GNU Guix & GuixSD 0.16.0 released". i686, x86_64, mips64el, armv7, aarch64 ~8715
1.0.0 Courtès, Ludovic (2 May 2019). "GNU Guix 1.0.0 released". i686, x86_64, mips64el, armv7, aarch64 ~9712
1.0.1 Courtès, Ludovic (19 May 2019). "GNU Guix 1.0.1 released". i686, x86_64, mips64el, armv7, aarch64 ~9771
1.1.0 Courtès, Ludovic (15 April 2020). "GNU Guix 1.1.0 released". i686, x86_64, armv7, aarch64 ~13161

See also

References

  1. Ludovic Courtès (2020-04-15). "GNU Guix 1.1.0 released". Retrieved 2020-04-15.
  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. 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
  5. 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.
  6. Dolstra, E. The Purely Functional Software Deployment Model. PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
  7. "What to call Guix?" (Mailing list). gnu-system-discuss. 2015-01-15.
  8. Programming Interface (GNU Guix Reference Manual)
  9. Guix: A New Package Manager & GNU Distribution - Phoronix
  10. "guix-europe". git.savannah.gnu.org. Retrieved 16 May 2019.
  11. "Invoking guix gc". gnu.org. Retrieved 16 May 2019.
  12. "Invoking guix package". gnu.org. Retrieved 16 May 2019.
  13. "Invoking guix environment". gnu.org. Retrieved 16 May 2019.
  14. "Invoking guix pack". gnu.org. Retrieved 16 May 2019.
  15. "Invoking guix graph". gnu.org. Retrieved 16 May 2019.
  16. Courtès, Ludovic (2012-11-23). "Introducing GNU Guix" (Mailing list). gnu-system-discuss.
  17. Stallman, Richard (2012-06-05). "A GNU Distribution" (Mailing list). gnu-system-discuss.
  18. Ragkousis, Manolis (August 20, 2015). "[GSoC update] Porting Guix to GNU/Hurd" (Mailing list). guix-devel. Retrieved August 20, 2015.
  19. "About — GuixSD". www.gnu.org. Retrieved 2018-05-03.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.