【问题标题】:how does nix know what binary a machine needs?nix 如何知道机器需要什么二进制文件?
【发布时间】:2015-06-19 18:32:23
【问题描述】:

他们将其写在 nix 文档中:

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

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

【问题讨论】:

    标签: nix


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      • 2016-08-01
      相关资源
      最近更新 更多