GNU Guix ([ 2] )是一个跨平台的包管理器,也是一个用于实例化和管理类Unix操作系统的工具。其基于Nix 包管理器与Guile Scheme API ,只提供自由软件 。[ 3] GNU Guix是GNU Guix System GNU/Linux发行版的默认包管理器。[ 4] [ 5] [ 6]
与传统的包管理器 不同,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]
参考资料
^ Ludovic Courtès. GNU Guix 1.3.0 released . 2021-05-11 [2021-05-11 ] . (原始内容存档 于2021-05-13).
^ GNU Guix Reference Manual . www.gnu.org. [2018-04-23 ] . (原始内容存档 于2018-12-23).
^ Ludovic Courtès. Functional Package Management with Guix . Madrid , Spain : European Lisp Symposium. 2013 [2021-01-27 ] . (原始内容存档 于2015-02-05).
^ 4.0 4.1 What to call Guix? (邮件列表). gnu-system-discuss. 2015-01-15 [2021-01-27 ] . (原始内容存档 于2020-08-07).
^ 5.0 5.1 Programming Interface (GNU Guix Reference Manual) . [2021-01-27 ] . (原始内容存档 于2019-06-02).
^ 6.0 6.1 Guix: A New Package Manager & GNU Distribution - Phoronix . [2021-01-27 ] . (原始内容存档 于2015-02-02).
^ Prins, P., Suresh, J. and Dolstra, E., "Nix fixes dependency hell on all Linux distributions," (页面存档备份 ,存于互联网档案馆 ) linux.com , December 22, 2008
^ 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.
^ Dolstra, E. The Purely Functional Software Deployment Model. (页面存档备份 ,存于互联网档案馆 ) PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
^ 10.0 10.1 GNU's advanced distro and transactional package manager — GNU Guix . guix.gnu.org. [2021-01-29 ] . (原始内容存档 于2021-01-27).
^ Hurd 内核接棒:GNU Guix 将终止对 Linux 的支持 . 2020-04-05 [2021-02-03 ] . (原始内容存档 于2020-09-25).
^ guix-europe . git.savannah.gnu.org. [2019-05-16 ] . (原始内容存档 于2021-01-24).