|
|
| (3 intermediate revisions by one other user not shown) |
| Line 1: |
Line 1: |
| Nix是一个包管理器和构建系统, 解析用 [[Nix Expression Language|Nix表达式语言]] (惰性求值的纯函数式语言) 指定的可再现的构建指令. Nix表达式是纯函数<ref>计算过程中,值不可改变. 当函数的输入不变时,函数总是输出相同的结果. </ref>, 接受依赖作为参数,并为包产生一个指定了可再现的构建环境的 ''[[Derivations|derivation]]'' . Nix把构建的结果存储在由完整依赖树的哈希值指定的唯一地址中, 创建了一个不可变的包存储 (即[[#Nix store|nix存储]]), 这使得原子升级, 回滚, 以及不同版本的包的同时安装成为可能, 从根本上消除了[https://en.wikipedia.org/wiki/Dependency_hell 依赖地狱]. | | Nix 是一个软件包管理器和构建系统,它解析由 [[$1|Nix 表达式语言]] (惰性求值的纯函数式语言) 指定的可复现的构建指令。Nix 表达式是纯函数<ref>值在计算过程中不会改变。当函数的输入不变时,函数总是输出相同的结果。</ref>,它接受依赖作为参数,并生成一个 ''[[$2|derivation]]'',用于指定该软件包的可复现的构建环境。Nix 把构建结果存储在由完整依赖树的哈希值指定的唯一地址中,从而创建了一个不可变的包存储 (即 [[#Nix store|nix store]]),使得原子升级、回滚、以及同时安装同一软件包的不同版本成为可能,从根本上消除了 [[$3|依赖地狱]]。 |
Latest revision as of 14:48, 2 June 2026
Nix 是一个软件包管理器和构建系统,它解析由 Nix 表达式语言 (惰性求值的纯函数式语言) 指定的可复现的构建指令。Nix 表达式是纯函数[1],它接受依赖作为参数,并生成一个 derivation,用于指定该软件包的可复现的构建环境。Nix 把构建结果存储在由完整依赖树的哈希值指定的唯一地址中,从而创建了一个不可变的包存储 (即 nix store),使得原子升级、回滚、以及同时安装同一软件包的不同版本成为可能,从根本上消除了 依赖地狱。
- ↑ 值在计算过程中不会改变。当函数的输入不变时,函数总是输出相同的结果。