Nix 包管理器
Nix 是一个操作系统包管理器。同 RPM、APT 和许多其它的软件包管理系统一样,它可以用来控制软件包的安装,或已命名的,带版本号的文件组,例如软件应用及其相关的配置数据等。[2][3][4]
穩定版本 | 1.11.15[1] (2017年9月15日 ) |
---|---|
源代码库 | ![]() |
编程语言 | C, C++, Perl |
系統平台 | Linux, Unix-like |
类型 | 软件包管理系统 |
许可协议 | LGPL |
网站 | nixos |
Nix
Nix 包采用一种专门设计的,惰性求值的纯函数式语言进行配置;Shell 脚本或其它外部程序(如 Make)可用于从源码构建包。此系统的纯函数式性质能够保证非常精准的依赖跟踪。例如,一个二进制包依赖于对应的源码包、编译器和其它用于构建的包。密码散列函数确定了每个包的精确构建和运行时依赖,而每个源码或二进制包都北七以一个这样的散列值表示。其结果就是,二进制包仓库成为了包管理器基本操作透明性的优化(类似幹于通过密码散列函数来“缓存”)。
依赖问题通过功能上等价于硬链接的一套系统来解决,若软件的某个版本被某个包所依赖,那么仅当没有包依赖于它之前,它都不会被移除。这会导致需要更多的存储空间,但可以保证所有升级的安全性(保证不会破坏现有的应用)和原子性。它也允许任何包的多个版本,包括参数化地包含某一特性的包同时存在而没有冲突。
Nix 在安装包时依赖于自身的目录结构。所有的包均会被安装到 nix 目录的子目录中。在命名文件夹时,一个包的不同版本会根据包的 hash 加以区分。
此外,Nix 可作为现有系统(例如 GNU/Linux 靠北发行版)的包管理器使用。除了严格意义上的软件包外,Nix 也可被用于维护任何类型的文件配置,如服务器的配置等。
参见
参考文献
- Dolstra, Eelco. (邮件列表). 2017-09-15 [2017-09-15]. (原始内容存档于2019-02-17).
- Prins, P., Suresh, J. and Dolstra, E., "Nix fixes dependency hell on all Linux distributions," 页面存档备份,存于 linux.com, December 22, 2008
- 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.
- Dolstra, E. The Purely Functional Software Deployment Model. 页面存档备份,存于 PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. ISBN 90-393-4130-3.
外部链接
- 官方网站
- 零安装和 Nix 这类系统的比较页面存档备份,存于
- Debian 开发者的批评页面存档备份,存于 (2008)
- 介绍:Purely Functional Configuration Management with Nix and NixOS页面存档备份,存于
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.