Nix 包管理器 - Wikiwand
For faster navigation, this Iframe is preloading the Wikiwand page for Nix 包管理器.

Nix 包管理器

維基百科,自由的百科全書

Nix 包管理器
穩定版本
1.11.15[1]
(2017年9月15日,​2年前​(2017-09-15
原始碼庫 編輯維基數據鏈接
程式語言 C, C++, Perl
系統平台 Linux, Unix-like
類型 軟體包管理系統
許可協議 LGPL
網站 nixos.org/nix

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

Nix

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

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

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

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

NixOS

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

參見

參考文獻

  1. ^ Dolstra, Eelco. Release 1.11.15 (郵件列表). 2017-09-15 [2017-09-15]. 
  2. ^ Prins, P., Suresh, J. and Dolstra, E., "Nix fixes dependency hell on all Linux distributions," linux.com, December 22, 2008
  3. ^ 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.
  4. ^ Dolstra, E. The Purely Functional Software Deployment Model. 頁面存檔備份,存於網際網路檔案館 PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
  5. ^ http://nixos.org/
  6. ^ Dolstra, E. and Löh, A. "NixOS: A Purely Functional Linux Distribution 頁面存檔備份,存於網際網路檔案館." In ICFP 2008: 13th ACM SIGPLAN International Conference on Functional Programming, pages 367–378, Victoria, British Columbia, Canada. September 2008.

外部連結

{{bottomLinkPreText}} {{bottomLinkText}}
Nix 包管理器
Listen to this article