1

我是 Nix 的新手,我试图理解示例中给出的hello推导。

我可以理解语法和应该做什么,但是我不明白初始参数(尤其是perlone_ 是如何输入的?

perl我的意思是,在调用这个推导之前是谁在设置参数。这是否意味着这perl是一个依赖hello

4

1 回答 1

2

包通常被编写为set of dependencies -> derivation函数,以便稍后组装。您询问的参数来自 pkgs/top-level/all-packages.nix,它包含 Nixpkgs 中所有包的集合。

当您hello在 all-packages.nix 中找到 ' 行时,您会注意到它正在使用callPackage- 它的签名是path to Nix expression -> overrides -> derivation. callPackage加载路径,查看它加载的函数,并为每个参数提供来自overridesall-packages.nix 中巨大集合的值,如果没有给出,则提供。

有关详细说明,callPackage请参见http://lethalman.blogspot.com/2014/09/nix-pill-13-callpackage-design-pattern.html - 这是一个不那么简洁的解释,展示了您如何发明callPackage自己 :-) .

于 2015-01-10T22:13:52.440 回答