热门问题
时间线
聊天
视角

Guix

GNU系統的純功能軟體包管理程式 来自维基百科,自由的百科全书

Guix
Remove ads

GNU Guix/ɡks/[2])是一個跨平台的包管理器,也是一個用於實例化和管理類Unix操作系統的工具。Guix的源代碼分叉Nix,部分組件使用GNU Guile進行編寫。默認情況下只提供自由的軟件包[3] GNU Guix是GNU Guix System的默認包管理器。[4][5][6]

事实速览 當前版本, 源代碼庫 ...

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

該項目由志願者團隊在互聯網上協調,並由法國非營利組織Guix Europe負責財務管理等。[7]

Remove ads

歷史

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

原理

與傳統的包管理器不同,Guix(如Nix一樣)採用了純函數式的部署模型,軟件被安裝到通過密碼散列函數生成的唯一的目錄中。每個軟件的所有依賴都作為每個密碼散列函數的輸入,解決了依賴地獄的問題。[10] 這種包管理方法更有可能產生更可靠、可複製和可移植的包。[11][12]

Guix中的軟件包使用Guile進行定義。[13]包依賴通過被稱為「deriviation」(推導值)的特殊值在Guile中被跟蹤,這些值將被Guix進程進行推導;Guix會跟蹤這些值,以便在沒有其他軟件包依賴它們時,讓其可以被刪除。以更大的存儲需求為代價,Guix保證其所有操作是原子操作,因此可被回滾[13];例外是若使用sudo guix gc --verify=contents,repair進行修復,會破壞線性一致性導致無法回滾[14]

GNU Guix System (操作系統)

事实速览 開發者, 編程語言 ...

參考資料

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads