Guix

GNU Guix（）是一个跨平台的包管理器，也是一个用于实例化和管理类Unix操作系统的工具。其设计灵感与部分源码来自Nix，部分组件使用GNU Guile进行编写。默认情况下只提供自由的软件包。 GNU Guix是GNU Guix System的默认包管理器。

GNU Guix的开发与GNU Guix System交织在一起。Guix System是一个默认使用GNU Hurd或GNU Linux-libre内核， init的完整GNU操作系统。

该项目由志愿者团队在互联网上协调，并由法国非营利组织Guix Europe负责财务管理等。

 历史 
这个项目由一个GNU Guile黑客Ludovic Courtès于2012年发起。据Guix开发者在2022年十周年纪念博客里的解释，取“Guix”这个名称是为了致敬Nix与Guile，因为Guix项目最开始就是把两者混合在一起的。

 原理 
与传统的包管理器不同，Guix（如Nix一样）采用了纯函数式的部署模型，软件被安装到通过密码散列函数生成的唯一的目录中。每个软件的所有依赖都作为每个密码散列函数的输入，解决了依赖地狱的问题。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. .

Guix中的软件包使用Guile进行定义。包依赖通过被称为“deriviation”（推导值）的特殊值在Guile中被跟踪，这些值将被Guix进程进行推导；Guix会跟踪这些值，以便在没有其他软件包依赖它们时，让其可以被删除。以更大的存储需求为代价，Guix保证其所有操作是原子操作，因此可被回滚；例外是若使用sudo guix gc --verify=contents,repair进行修复，会破坏线性一致性导致无法回滚。

 GNU Guix System (操作系统) 

参考资料

Category:2012年软件
Category:自由软件包管理系统
Category:用Lisp語言編輯的自由軟件
Category:函數式編程
Category:GNU计划软件
Category:Linux软件包管理相关软件