热门问题
时间线
聊天
视角
Nix 包管理器
来自维基百科,自由的百科全书
Remove ads
Nix 是一個作業系統包管理器。同 RPM、APT 和許多其它的軟體包管理系統一樣,它可以用來控制軟體包的安裝,或已命名的,帶版本號的文件組,例如軟體應用及其相關的配置數據等。[2][3][4]
Nix
Nix 包採用一種專門設計的,惰性求值的純函數式語言進行配置;Shell 腳本或其它外部程序(如 Make)可用於從源碼構建包。此系統的純函數式性質能夠保證非常精準的依賴跟蹤。例如,一個二進制包依賴於對應的源碼包、編譯器和其它用於構建的包。密碼散列函數確定了每個包的精確構建和運行時依賴,而每個源碼或二進位包都以一個這樣的散列值表示。其結果就是,二進制包倉庫成為了包管理器基本操作透明性的優化(類似幹於通過密碼散列函數來「緩存」)。
依賴問題通過功能上等價於硬連結的一套系統來解決,若軟體的某個版本被某個包所依賴,那麼僅當沒有包依賴於它之前,它都不會被移除。這會導致需要更多的存儲空間,但可以保證所有升級的安全性(保證不會破壞現有的應用)和原子性。它也允許任何包的多個版本,包括參數化地包含某一特性的包同時存在而沒有衝突。
Nix 在安裝包時依賴於自身的目錄結構。所有的包均會被安裝到 nix 目錄的子目錄中。在命名文件夾時,一個包的不同版本會根據包的 hash 加以區分。
此外,Nix 可作為現有系統(例如 GNU/Linux 發行版)的包管理器使用。除了嚴格意義上的軟體包外,Nix 也可被用於維護任何類型的文件配置,如伺服器的配置等。
Remove ads
NixOS
參見
參考文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads