热门问题
时间线
聊天
视角

Nix 包管理器

来自维基百科,自由的百科全书

Remove ads

Nix 是一個作業系統包管理器。同 RPMAPT 和許多其它的軟體包管理系統一樣,它可以用來控制軟體包的安裝,或已命名的,帶版本號的文件組,例如軟體應用及其相關的配置數據等。[2][3][4]

快速預覽 首次發布, 當前版本 ...

Nix

Nix 包採用一種專門設計的,惰性求值純函數式語言進行配置;Shell 腳本或其它外部程序(如 Make)可用於從源碼構建包。此系統的純函數式性質能夠保證非常精準的依賴跟蹤。例如,一個二進制包依賴於對應的源碼包、編譯器和其它用於構建的包。密碼散列函數確定了每個包的精確構建和運行時依賴,而每個源碼或二進位包都以一個這樣的散列值表示。其結果就是,二進制包倉庫成為了包管理器基本操作透明性的優化(類似幹於通過密碼散列函數來「緩存」)。

依賴問題通過功能上等價於硬連結的一套系統來解決,若軟體的某個版本被某個包所依賴,那麼僅當沒有包依賴於它之前,它都不會被移除。這會導致需要更多的存儲空間,但可以保證所有升級的安全性(保證不會破壞現有的應用)和原子性。它也允許任何包的多個版本,包括參數化地包含某一特性的包同時存在而沒有衝突。

Nix 在安裝包時依賴於自身的目錄結構。所有的包均會被安裝到 nix 目錄的子目錄中。在命名文件夾時,一個包的不同版本會根據包的 hash 加以區分。

此外,Nix 可作為現有系統(例如 GNU/Linux 發行版)的包管理器使用。除了嚴格意義上的軟體包外,Nix 也可被用於維護任何類型的文件配置,如伺服器的配置等。

Remove ads

NixOS

NixOS[5] 是一個 Linux發行版,它採用 Nix 來管理作業系統中包括 Linux 內核的所有部分。[6]

參見

參考文獻

Loading content...

外部連結

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads