Guix
外观

(重定向自Guix System)
![]() | |
当前版本 |
|
---|---|
源代码库 | |
编程语言 | Guile Scheme, C++(Nix核心) |
许可协议 | GPLv3+ |
网站 | guix |
GNU Guix(/ɡiːks/[2])是一个跨平台的包管理器,也是一个用于实例化和管理类Unix操作系统的工具。Guix的源代码分叉自Nix,部分组件使用GNU Guile进行编写。默认情况下只提供自由的软件包。[3] GNU Guix是GNU Guix System的默认包管理器。[4][5][6]
GNU Guix的开发与GNU Guix System交织在一起。[4]Guix System是一个默认使用GNU Hurd或GNU Linux-libre内核,GNU Shepherd init的完整GNU操作系统。[5][6]
该项目由志愿者团队在互联网上协调,并由法国非营利组织Guix Europe负责财务管理等。[7]
原理
[编辑]与传统的包管理器不同,Guix(如Nix一样)采用了纯函数式的部署模型,软件被安装到通过密码散列函数生成的唯一的目录中。每个软件的所有依赖都作为每个密码散列函数的输入,解决了依赖地狱的问题。[8] 这种包管理方法更有可能产生更可靠、可复制和可移植的包。[9][10]
Guix中的软件包使用Guile进行定义。[11]包依赖通过被称为“deriviation”(推导值)的特殊值在Guile中被跟踪,这些值将被Guix进程进行推导;Guix会跟踪这些值,以便在没有其他软件包依赖它们时,让其可以被删除。以更大的存储需求为代价,Guix保证其所有操作是原子操作,因此可被回滚[11];例外是若使用sudo guix gc --verify=contents,repair
进行修复,会破坏线性一致性导致无法回滚[12]。
GNU Guix System (操作系统)
[编辑]![]() | |
![]() | |
开发者 | GNU计划 |
---|---|
编程语言 | GNU Guile,C++,Shell |
作業系統家族 | 类Unix |
源码模式 | 开放源代码 |
当前版本 |
|
市場取向 | 桌面计算机,笔记本电脑,服务器,嵌入式开发板等 |
内核类别 | 宏内核(使用GNU Linux-libre时)或微内核(使用GNU Hurd时) |
使用者空間 | 默认为GNU |
许可证 | |
官方網站 | guix |
仓库 |
历史
[编辑]这个项目由一个GNU Guile黑客Ludovic Courtès于2012年发起。[13]
参考资料
[编辑]- ^ 1.0 1.1 GNU Guix 1.4.0 released. 2022年12月19日 [2022年12月21日].
- ^ 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).
- ^ guix-europe. git.savannah.gnu.org. [2019-05-16]. (原始内容存档于2021-01-24).
- ^ 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.
- ^ 11.0 11.1 GNU's advanced distro and transactional package manager — GNU Guix. guix.gnu.org. [2021-01-29]. (原始内容存档于2021-01-27).
- ^ Guix文档贡献者. Invoking guix gc. Guix(devel) Manual. 2025-09-10 [2025-09-10] (英语).
- ^ Courtès, Ludovic. GNU Guix launches. LWN.net. 2012-11-25 [2025-06-17] (英语).