1

他们将其写在 nix 文档中:

但是,Nix 可以自动跳过从源代码构建,而是使用二进制缓存,即提供预构建二进制文件的 Web 服务器。例如,当被要求从源代码构建 /nix/store/b6gvzjyb2pg0...-firefox-33.1 时,Nix 将首先检查文件https://cache.nixos.org/b6gvzjyb2pg0 ....narinfo 是否存在,如果存在,则获取从那里引用的预构建二进制文件;否则,它将退回到从源头构建。

我想知道 nix 怎么知道我的机器需要什么样的二进制文件?假设我在 arm 或 intel 或 amd 上运行 nix,或者你说出它的名字。如何为正确的架构选择此缓存中的二进制文件?

4

1 回答 1

5

nix 是一个纯粹的功能包管理器。因此,它将包所需的所有内容作为函数的输入,包括所谓的stdEnv,其中包含有关架构的信息。

使用这些输入 nix 生成一个哈希。这就是您在包名称前面看到的内容。

因此所需的架构被编码在该哈希中,这就是为什么从二进制缓存下载时只需要检查哈希。

于 2015-06-19T18:42:07.247 回答