Guix
| 当前版本 | |
|---|---|
| 源代码库 | |
| 编程语言 | Guile Scheme, C++(主分支的Guix守护进程) |
| 许可协议 | GPLv3+ |
| 网站 | guix |
GNU Guix(/ɡiːks/[3])是一个跨平台的包管理器,也是一个用于实例化和管理类Unix操作系统的工具。设计上,Guix参考了Nix的原理。[4]Guix采用了一些Nix包管理器的底层机制[5];其余大部分组件使用GNU Guile进行编写。默认情况下只提供自由的软件包。[6] GNU Guix是GNU Guix System的默认包管理器。[7][8][9]
与传统的包管理器不同,Guix(如Nix一样)采用了纯函数式的部署模型,软件被安装到通过密码散列函数生成的唯一的目录中。每个软件的所有依赖都作为每个密码散列函数的输入,解决了依赖地狱的问题。[10] 这种包管理方法更有可能产生更可靠、可复制和可移植的包。[11][12]
原理
[编辑]Guix中的软件包使用Guile Scheme API进行定义。[13]包依赖通过被称为“deriviation”(直译:「推导值」)的特殊值在Guile中被跟踪,这些值将被Guix进程进行推导;Guix会跟踪这些值,以便在没有其他软件包依赖它们时,让其可以被删除。以更大的存储需求为代价,Guix保证其所有操作是原子操作,因此可被回滚[13];例外是若使用sudo guix gc --verify=contents,repair进行修复,会破坏线性一致性导致无法回滚[14][需要較佳来源]。
GNU Guix System (操作系统)
[编辑]| 开发者 | GNU计划 |
|---|---|
| 编程语言 | GNU Guile,C++,Shell |
| 作業系統家族 | 类Unix |
| 源码模式 | 开放源代码 |
| 当前版本 | |
| 市場取向 | 桌面计算机,笔记本电脑,服务器,嵌入式开发板等 |
| 内核类别 | 宏内核(使用GNU Linux-libre时)或微内核(使用GNU Hurd时) |
| 使用者空間 | 默认为GNU |
| 许可证 | |
| 官方網站 | guix |
| 仓库 | |
GNU Guix System或简称Guix System,[15][16](前称Guix System Distribution(GuixSD)[17]),是一款基于 Guix 构建的滚动更新、完全自由的GNU发行版,其关系类似于NixOS基于Nix构建。[18][19]Guix System 支持声明式操作系统配置[20],并允许用户在系统升级后执行回滚操作。[21]该系统采用 GNU Shepherd 作为init系统,[22][23]用户可以选择使用Linux-libre内核或者GNU Hurd(GNU mach)内核。2015年2月3日,自由软件基金会将 Guix System 收录至其认可的自由 Linux 发行版列表[24]。2026年3月,Guix System 1.5.0发布。amd64架构的Hurd作为高度实验性的内核选项,正式出现在该操作系统的TUI安装器界面中。[25]
历史
这个项目由一个GNU Guile黑客Ludovic Courtès于2012年发起。[26]
据Guix开发者在2022年十周年纪念博客里的解释,取“Guix”这个名称是为了致敬Nix与Guile[27],因为Guix项目最开始就是把两者混合在一起的。
发布
[编辑]该项目没有固定的发布周期,迄今为止大约每 6 个月发布一个新版本。
2025年5月,该项目从GNU Savannah迁移至Codeberg。[28][29]
版本历史
[编辑]| 版本 | 发布公告 | 支持的架构 | 软件包数量 |
|---|---|---|---|
| 0.1(Alpha) | Courtès, Ludovic. GNU Guix 0.1 released (alpha). 18 January 2013 [2026-07-06]. (原始内容存档于2026-07-13). |
|
约150 |
| 0.2(Alpha) | Courtès, Ludovic. GNU Guix 0.2 released (alpha). 12 May 2013 [2026-07-06]. (原始内容存档于2026-02-16). | 约400 | |
| 0.3 | Courtès, Ludovic. GNU Guix 0.3 released. 17 Jul 2013 [2026-07-06]. (原始内容存档于2026-07-13). | 约430 | |
| 0.4 | Courtès, Ludovic. GNU Guix 0.4 released. 27 Sep 2013 [2026-07-06]. (原始内容存档于2026-03-08). | 约490 | |
| 0.5 | Courtès, Ludovic. GNU Guix 0.5 released. 11 Dec 2013 [2026-07-06]. (原始内容存档于2026-07-13). | 约600 | |
| 0.6 | Courtès, Ludovic. GNU Guix 0.6 released. 9 Apr 2014 [2026-07-06]. (原始内容存档于2026-07-13). | 约691 | |
| 0.7 | Courtès, Ludovic. GNU Guix 0.7 released. 25 Jul 2014 [2026-07-06]. (原始内容存档于2026-07-07). | 约825 | |
| 0.8 | Courtès, Ludovic. GNU Guix 0.8 released. 18 Nov 2014 [2026-07-06]. (原始内容存档于2026-07-09). |
|
约987 |
| 0.8.1 | Courtès, Ludovic. GNU Guix 0.8.1 released. 29 Jan 2015 [2026-07-06]. (原始内容存档于2026-07-13). |
|
约1,151 |
| 0.8.2 | Courtès, Ludovic. GNU Guix 0.8.2 released. 14 May 2015 [2026-07-06]. (原始内容存档于2025-04-26). | 约1,869 | |
| 0.8.3 | Courtès, Ludovic. GNU Guix 0.8.3 released. 22 Jul 2015 [2026-07-06]. (原始内容存档于2025-06-20). | 约2,048 | |
| 0.9.0 | Courtès, Ludovic. GNU Guix 0.9.0 released. 5 Nov 2015 [2026-07-06]. (原始内容存档于2026-07-14). | 约2,591 | |
| 0.10.0 | Courtès, Ludovic. GNU Guix & GuixSD 0.10.0 released. 29 Mar 2016 [2026-07-06]. (原始内容存档于2026-07-09). [30][需要較佳来源] | 约3,230 | |
| 0.11.0 | Courtès, Ludovic. GNU Guix & GuixSD 0.11.0 released. 3 Aug 2016 [2026-07-06]. (原始内容存档于2026-07-07). | 约3,714 | |
| 0.12.0 | Wurmus, Ricardo. GNU Guix & GuixSD 0.12.0 released. 21 December 2016 [2026-07-06]. (原始内容存档于2020-08-01). | 约4,567 | |
| 0.13.0 | Courtès, Ludovic. GNU Guix & GuixSD 0.13.0 released. 22 May 2017 [2026-07-06]. (原始内容存档于2026-07-06). |
|
约5,407 |
| 0.14.0 | Courtès, Ludovic. GNU Guix & GuixSD 0.14.0 released. 7 Dec 2017 [2026-07-06]. (原始内容存档于2026-03-11). | 约6,618 | |
| 0.15.0 | Courtès, Ludovic. GNU Guix & GuixSD 0.15.0 released. 6 Jul 2018 [2026-07-06]. (原始内容存档于2025-12-26). | 约7,857 | |
| 0.16.0 | Courtès, Ludovic. GNU Guix & GuixSD 0.16.0 released. 6 Dec 2018 [2026-07-06]. (原始内容存档于2019-06-22). | 约8,715 | |
| 1.0.0 | Courtès, Ludovic. GNU Guix 1.0.0 released. 2 May 2019 [2026-07-06]. (原始内容存档于2019-05-26). | 约9,712 | |
| 1.0.1 | Courtès, Ludovic. GNU Guix 1.0.1 released. 19 May 2019 [2026-07-06]. (原始内容存档于2019-05-25). | 约9,771 | |
| 1.1.0 | Courtès, Ludovic. GNU Guix 1.1.0 released. 15 April 2020. |
|
约13,161 |
| 1.2.0 | Courtès, Ludovic. GNU Guix 1.2.0 released. 23 November 2020 [2021-01-27]. (原始内容存档于2021-01-28). | 约15,333 | |
| 1.3.0 | Courtès, Ludovic. GNU Guix 1.3.0 released. 11 May 2021 [2021-05-12]. (原始内容存档于2021-05-13). |
|
约17,262 |
| 1.4.0 | Courtès, Ludovic. GNU Guix 1.4.0 released. 19 December 2022 [2026-07-06]. (原始内容存档于2021-05-13). |
|
约22,000 |
| 1.5.0 | Courtès, Ludovic. GNU Guix 1.5.0 released. 23 January 2026 [2026-07-06]. (原始内容存档于2026-07-14). |
|
约34,000 |
参考资料
[编辑]- ^ 1.0 1.1 GNU Guix 1.5.0 released. 2026年1月23日.
- ^ 2.0 2.1 "guix-1.5.0 released [stable"]; 作者姓名字符串: Efraim Flashner; 作品或名稱的語言: 英語; 出版日期: 2026年1月23日; 检索日期: 2026年1月24日.
- ^ GNU Guix Reference Manual. www.gnu.org. [2018-04-23]. (原始内容存档于2018-12-23).
- ^ Courtès, Ludovic. Code staging in GNU Guix. ACM SIGPLAN Notices. 2017-12, 52 (12) [2026-08-27]. ISSN 0362-1340. doi:10.1145/3170492.3136045 (英语).
- ^ Kißling, Kristian. Guix erhält ARM-Support. Linux magazine德语版. 2015-01-12 [2026-08-27] (德语).
- ^ Ludovic Courtès. Functional Package Management with Guix. Madrid, Spain: European Lisp Symposium. 2013 [2021-01-27]. (原始内容存档于2015-02-05).
- ^ What to call Guix? (邮件列表). gnu-system-discuss. 2015-01-15 [2021-01-27]. (原始内容存档于2020-08-07).
- ^ Programming Interface (GNU Guix Reference Manual). [2021-01-27]. (原始内容存档于2019-06-02).
- ^ 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.
- ^ 13.0 13.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]. (原始内容存档于2026-07-07) (英语).
- ^ About — GNU Guix. guix.gnu.org. [2021-12-11]. (原始内容存档于2026-02-27).
- ^ Free GNU/Linux distributions. www.gnu.org. [2026-07-06]. (原始内容存档于2014-12-16).
- ^ What to call Guix? (邮件列表). gnu-system-discuss. 2015-01-15 [August 3, 2020]. (原始内容存档于August 7, 2020).
- ^ List of Free GNU/Linux Distributions. www.gnu.org. [February 3, 2015]. (原始内容存档于July 6, 2020).
- ^ Guix: A New Package Manager & GNU Distribution. Phoronix. [February 3, 2015]. (原始内容存档于February 2, 2015).
- ^ Using the Configuration System. www.gnu.org. [27 April 2019]. (原始内容存档于April 29, 2019).
- ^ Package Management. www.gnu.org. [27 April 2019]. (原始内容存档于May 21, 2019).
- ^ Programming Interface (GNU Guix Reference Manual). guix.gnu.org. [2020-08-03]. (原始内容存档于August 7, 2020).
- ^ Guix: A New Package Manager & GNU Distribution - Phoronix. www.phoronix.com. [2020-08-03]. (原始内容存档于July 6, 2018).
- ^ FSF adds GNU Guix System Distribution to list of endorsed distributions. Free Software Foundation. 3 February 2015 [February 3, 2015]. (原始内容存档于February 3, 2015).
- ^ Larabel, Michael. GNU Hurd On Guix Is Ready With 64-bit Support, SMP Multi-Processor Support "Soon". Phoronix. [2026-07-13]. (原始内容存档于2026-07-13) (英语).
- ^ Courtès, Ludovic. GNU Guix launches. LWN.net. 2012-11-25 [2025-06-17]. (原始内容存档于2026-05-13) (英语).
- ^ Edge, Jake. 10 years of stories behind Guix (Guix blog). LWN.net. 2022-04-18 [2025-09-13]. (原始内容存档于2025-01-24) (美国英语).
- ^ Brockmeier, Joe. Guix project migrating to Codeberg. LWN. 2025-05-12 [2026-07-13]. (原始内容存档于2025-05-16) (美国英语).
- ^ Migrating to Codeberg. GNU Guix. May 11, 2025 [June 12, 2025]. (原始内容存档于2026-07-06).
- ^ GNU GuixSD 0.10.0 发布,GNU 软件包管理. OSCHINA. OSCHINA. 2016-03-30 [2026-07-13]. (原始内容存档于2026-07-13) (中文(中国大陆)).