Guix

GNU Guix/ɡks/[2])是一个跨平台的包管理器,也是一个用于实例化和管理类Unix操作系统的工具。其基于Nix包管理器与Guile Scheme API,只提供自由软件[3] GNU Guix是GNU Guix SystemGNU/Linux发行版的默认包管理器。[4][5][6]

GNU Guix
当前版本
  • 1.4.0 (2022年12月19日;穩定版本)[1]
源代码库
编程语言Guile Scheme, C++Nix核心)
许可协议GPLv3+
网站guix.gnu.org

与传统的包管理器不同,Guix(如Nix一样)采用了纯函数式的部署模型,软件被安装到通过密码散列生成的唯一的目录中。每个软件的依赖都包含在哈希当中,解决了依赖地狱的问题。[7] 这种包管理方法更有可能产生更可靠、可复制和可移植的包。[8][9]

Guix 中的包使用一种专用的,名为Guile Scheme API的语言来进行定义。[10]依赖通过被称为“派生”的特殊值在这种语言中被跟踪,这些值将被Guix进程评估。Guix 会跟踪这些值,以便在没有其他软件包依赖它们时,可以被删除。以更大的存储需求为代价,Guix保证其所有操作是原子操作并可被回滚。[10]

GNU Guix的开发与GNU Guix System交织在一起(直到Guix 1.0:Guix系统发行版[GuixSD])。[4]GNU Guix System是一个使用Hurd内核和GNU Shepherd init系统的完整的GNU系统。[11][5][6]

该项目由志愿者团队在互联网上协调,并由法国非营利组织Guix Europe负责。[12]

参考资料

  1. . 2022年12月19日 [2022年12月21日].
  2. . www.gnu.org. [2018-04-23]. (原始内容存档于2018-12-23).
  3. Ludovic Courtès. . Madrid, Spain: European Lisp Symposium. 2013 [2021-01-27]. (原始内容存档于2015-02-05).
  4. (邮件列表). gnu-system-discuss. 2015-01-15 [2021-01-27]. (原始内容存档于2020-08-07).
  5. . [2021-01-27]. (原始内容存档于2019-06-02).
  6. . [2021-01-27]. (原始内容存档于2015-02-02).
  7. Prins, P., Suresh, J. and Dolstra, E., "Nix fixes dependency hell on all Linux distributions," 页面存档备份,存于 linux.com, December 22, 2008
  8. 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.
  9. Dolstra, E. The Purely Functional Software Deployment Model. 页面存档备份,存于 PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
  10. . guix.gnu.org. [2021-01-29]. (原始内容存档于2021-01-27).
  11. . 2020-04-05 [2021-02-03]. (原始内容存档于2020-09-25).
  12. . git.savannah.gnu.org. [2019-05-16]. (原始内容存档于2021-01-24).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.