他们在nix文档中写道:
但是,Nix可以自动从源代码跳过构建,而是使用二进制缓存,即提供预构建二进制文件的Web服务器。例如,当被要求从源构建/nix/store/b6gvzjyb2pg0...-firefox-33.1时,Nix将首先检查文件https://cache.nixos.org/b6gvzjyb2pg0 ... .narinfo是否存在,如果存在,则获取从以下引用的预构建二进制文件那里;否则,它将从源头回归建设。
我想知道nix如何知道我的机器需要什么样的二进制文件?如果我在手臂或英特尔或amd上运行nix或者你命名它。如何为正确的架构选择此缓存中的二进制文件?
答案 0 :(得分:5)
nix是一个纯粹的功能包管理器。因此,它将包所需的所有内容作为函数的输入,包括所谓的stdEnv
,其中包含有关体系结构的信息。
使用这些输入,nix会生成一个哈希值。这是您在包名称前面看到的内容。
因此所需的体系结构在该哈希中进行编码,这就是为什么从二进制缓存下载时只需要检查哈希值。