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