跳至內容

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) (中文(中國大陸)).