跳转到内容

Guix

本页使用了标题或全文手工转换
维基百科,自由的百科全书
GNU Guix
当前版本
  • 1.5.0(2026年1月22日;穩定版本)[1][2]
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
编程语言Guile Scheme, C++(主分支的Guix守护进程)
许可协议GPLv3+
网站guix.gnu.org

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 Guix System
运行着Xfce桌面环境, GNU IceCat浏览器和GNU Emacs的Guix System
运行着Xfce桌面环境, GNU IceCat浏览器和GNU Emacs的Guix System
开发者GNU计划
编程语言GNU Guile,C++,Shell
作業系統家族类Unix
源码模式开放源代码
当前版本
  • 1.5.0(2026年1月22日;穩定版本)[1][2]
編輯維基數據鏈接
市場取向桌面计算机,笔记本电脑,服务器,嵌入式开发板等
内核类别宏内核(使用GNU Linux-libre时)或微内核(使用GNU Hurd时)
使用者空間默认为GNU
许可证 編輯維基數據鏈接
官方網站guix.gnu.org 編輯維基數據鏈接
仓库 編輯維基數據鏈接

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). 
  • i686
  • x86-64
约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). 
  • i686
  • x86-64
  • mips64el
约987
0.8.1 Courtès, Ludovic. GNU Guix 0.8.1 released. 29 Jan 2015 [2026-07-06]. (原始内容存档于2026-07-13). 
  • i686
  • x86-64
  • mips64el
  • armv7
约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). 
  • i686
  • x86-64
  • mips64el
  • armv7
  • aarch64
约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. 
  • i686
  • x86-64
  • armv7
  • aarch64
约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). 
  • i686
  • x86-64
  • powerpc64le
  • armv7
  • aarch64
约17,262
1.4.0 Courtès, Ludovic. GNU Guix 1.4.0 released. 19 December 2022 [2026-07-06]. (原始内容存档于2021-05-13). 
  • i686
  • x86-64
  • powerpc64le
  • armv7
  • aarch64
约22,000
1.5.0 Courtès, Ludovic. GNU Guix 1.5.0 released. 23 January 2026 [2026-07-06]. (原始内容存档于2026-07-14). 
  • i686
  • x86-64
  • powerpc64le
  • armv7
  • aarch64
  • riscv64
约34,000

参考资料

[编辑]
  1. ^ 1.0 1.1 GNU Guix 1.5.0 released. 2026年1月23日. 
  2. ^ 2.0 2.1 "guix-1.5.0 released [stable"]; 作者姓名字符串: Efraim Flashner; 作品或名稱的語言: 英語; 出版日期: 2026年1月23日; 检索日期: 2026年1月24日.
  3. ^ GNU Guix Reference Manual. www.gnu.org. [2018-04-23]. (原始内容存档于2018-12-23). 
  4. ^ Courtès, Ludovic. Code staging in GNU Guix. ACM SIGPLAN(英语:SIGPLAN) Notices. 2017-12, 52 (12) [2026-08-27]. ISSN 0362-1340. doi:10.1145/3170492.3136045 (英语). 
  5. ^ Kißling, Kristian. Guix erhält ARM-Support. Linux magazine(英语:Linux magazine)德语版. 2015-01-12 [2026-08-27] (德语). 
  6. ^ Ludovic Courtès. Functional Package Management with Guix. Madrid, Spain: European Lisp Symposium. 2013 [2021-01-27]. (原始内容存档于2015-02-05). 
  7. ^ What to call Guix? (邮件列表). gnu-system-discuss. 2015-01-15 [2021-01-27]. (原始内容存档于2020-08-07). 
  8. ^ Programming Interface (GNU Guix Reference Manual). [2021-01-27]. (原始内容存档于2019-06-02). 
  9. ^ Guix: A New Package Manager & GNU Distribution - Phoronix. [2021-01-27]. (原始内容存档于2015-02-02). 
  10. ^ Prins, P., Suresh, J. and Dolstra, E., "Nix fixes dependency hell on all Linux distributions," (页面存档备份,存于互联网档案馆) linux.com, December 22, 2008
  11. ^ 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.
  12. ^ Dolstra, E. The Purely Functional Software Deployment Model. (页面存档备份,存于互联网档案馆) PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
  13. ^ 13.0 13.1 GNU's advanced distro and transactional package manager — GNU Guix. guix.gnu.org. [2021-01-29]. (原始内容存档于2021-01-27). 
  14. ^ Guix文档贡献者. Invoking guix gc. Guix(devel) Manual. 2025-09-10 [2025-09-10]. (原始内容存档于2026-07-07) (英语). 
  15. ^ About — GNU Guix. guix.gnu.org. [2021-12-11]. (原始内容存档于2026-02-27). 
  16. ^ Free GNU/Linux distributions. www.gnu.org. [2026-07-06]. (原始内容存档于2014-12-16). 
  17. ^ What to call Guix? (邮件列表). gnu-system-discuss. 2015-01-15 [August 3, 2020]. (原始内容存档于August 7, 2020). 
  18. ^ List of Free GNU/Linux Distributions. www.gnu.org. [February 3, 2015]. (原始内容存档于July 6, 2020). 
  19. ^ Guix: A New Package Manager & GNU Distribution. Phoronix. [February 3, 2015]. (原始内容存档于February 2, 2015). 
  20. ^ Using the Configuration System. www.gnu.org. [27 April 2019]. (原始内容存档于April 29, 2019). 
  21. ^ Package Management. www.gnu.org. [27 April 2019]. (原始内容存档于May 21, 2019). 
  22. ^ Programming Interface (GNU Guix Reference Manual). guix.gnu.org. [2020-08-03]. (原始内容存档于August 7, 2020). 
  23. ^ Guix: A New Package Manager & GNU Distribution - Phoronix. www.phoronix.com. [2020-08-03]. (原始内容存档于July 6, 2018). 
  24. ^ FSF adds GNU Guix System Distribution to list of endorsed distributions. Free Software Foundation. 3 February 2015 [February 3, 2015]. (原始内容存档于February 3, 2015). 
  25. ^ Larabel, Michael. GNU Hurd On Guix Is Ready With 64-bit Support, SMP Multi-Processor Support "Soon". Phoronix. [2026-07-13]. (原始内容存档于2026-07-13) (英语). 
  26. ^ Courtès, Ludovic. GNU Guix launches. LWN.net. 2012-11-25 [2025-06-17]. (原始内容存档于2026-05-13) (英语). 
  27. ^ Edge, Jake. 10 years of stories behind Guix (Guix blog). LWN.net. 2022-04-18 [2025-09-13]. (原始内容存档于2025-01-24) (美国英语). 
  28. ^ Brockmeier, Joe. Guix project migrating to Codeberg. LWN. 2025-05-12 [2026-07-13]. (原始内容存档于2025-05-16) (美国英语). 
  29. ^ Migrating to Codeberg. GNU Guix. May 11, 2025 [June 12, 2025]. (原始内容存档于2026-07-06). 
  30. ^ GNU GuixSD 0.10.0 发布,GNU 软件包管理. OSCHINA. OSCHINA. 2016-03-30 [2026-07-13]. (原始内容存档于2026-07-13) (中文(中国大陆)).