Guix

出自Local Chinese Wikipedia
imported>CataPunero2026年5月22日 (五) 16:36的修訂 (删除无可靠二手来源内容;而且Guix已于2025年由新成立的Guix Foundation做fiscal sponsor)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋
GNU Guix
File:Guix logo.svg
程式語言Guile Scheme, C++Nix核心)
特許條款GPLv3+
網站guix.gnu.org

GNU Guix/ɡks/[1])是一個跨平台的包管理器,也是一個用於實例化和管理類Unix作業系統的工具。其設計靈感與部分原始碼來自Nix,部分組件使用GNU Guile進行編寫。預設情況下只提供自由的軟件套件[2] GNU Guix是GNU Guix System的預設包管理器。[3][4][5]

GNU Guix的開發與GNU Guix System交織在一起。[3]Guix System是一個預設使用GNU HurdGNU Linux-libre內核,GNU Shepherd英語GNU Shepherd init的完整GNU作業系統[4][5]

歷史

這個專案由一個GNU Guile黑客Ludovic Courtès於2012年發起。[6]據Guix開發者在2022年十周年紀念網誌里的解釋,取「Guix」這個名稱是為了致敬Nix與Guile[7],因為Guix專案最開始就是把兩者混合在一起的。

原理[編輯]

與傳統的包管理器不同,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 Guix System
File:Guix logo.svg
執行着Xfce桌面環境, GNU IceCat瀏覽器和GNU Emacs的Guix System
執行着Xfce桌面環境, GNU IceCat瀏覽器和GNU Emacs的Guix System
開發者GNU計劃
程式語言GNU GuileC++Shell
作業系統家族類Unix
原始碼模式開放原始碼
市場取向桌面電腦手提電腦伺服器嵌入式開發板
內核類別整塊性核心(使用GNU Linux-libre時)或微內核(使用GNU Hurd時)
用戶空間預設為GNU

參考資料[編輯]

  1. GNU Guix Reference Manual. www.gnu.org. [2018-04-23]. (原始內容存檔於2018-12-23). 
  2. Ludovic Courtès. Functional Package Management with Guix. Madrid, Spain: European Lisp Symposium. 2013 [2021-01-27]. (原始內容存檔於2015-02-05). 
  3. 3.0 3.1 What to call Guix? (郵寄清單). gnu-system-discuss. 2015-01-15 [2021-01-27]. (原始內容存檔於2020-08-07). 
  4. 4.0 4.1 Programming Interface (GNU Guix Reference Manual). [2021-01-27]. (原始內容存檔於2019-06-02). 
  5. 5.0 5.1 Guix: A New Package Manager & GNU Distribution - Phoronix. [2021-01-27]. (原始內容存檔於2015-02-02). 
  6. Courtès, Ludovic. GNU Guix launches. LWN.net. 2012-11-25 [2025-06-17] (English). 
  7. Edge, Jake. 10 years of stories behind Guix (Guix blog). LWN.net. 2022-04-18 [2025-09-13] (en-US). 
  8. Prins, P., Suresh, J. and Dolstra, E., "Nix fixes dependency hell on all Linux distributions,"頁面存檔備份,存於互聯網檔案館linux.com, December 22, 2008
  9. 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.
  10. Dolstra, E. The Purely Functional Software Deployment Model.頁面存檔備份,存於互聯網檔案館) PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
  11. 11.0 11.1 GNU's advanced distro and transactional package manager — GNU Guix. guix.gnu.org. [2021-01-29]. (原始內容存檔於2021-01-27). 
  12. Guix文件貢獻者. Invoking guix gc. Guix(devel) Manual. 2025-09-10 [2025-09-10] (English).