buildEnv内置函数如何工作?

时间:2018-03-31 17:32:35

标签: nix

buildEnv如何运作?为什么内置?我怎么用呢? What does manifest argument?有关buildEnv的文档在哪里?

1 个答案:

答案 0 :(得分:5)

正在查看实际的buildenv.nix还是buildEnv函数?

由于buildenv.nix是Nix软件包管理器的内部机制,因此对于非Nix本身的开发人员而言并没有太大的兴趣。

如果您对https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/buildenv/default.nix软件包集合中的buildEnv函数感兴趣,请在此处实现此函数: https://nixos.org/nixpkgs/manual/#sec-building-environment

即使代码给出了一些提示,我也没有找到任何真正的文档,但是您可以在手册中找到一些示例:  {{3}}

如果我理解正确,清单也是Nix的内部文件:这是一个Nix文件,其中包含与给定环境相对应的派生列表。例如,您可以在装有/nix/var/nix/profiles/per-user/root/channels/manifest.nix的nix的机器上看一看。

它不是很可读,看起来像这样:

[ { meta = { }; name = "nixos-18.09pre143771.a8c71037e04"; out = { outPath = "/nix/store/yqxc408mhbcksnaqndkpdkg8ylcj2xhg-nixos-18.09pre143771.a8c71037e04"; }; outPath = "/nix/store/yqxc408mhbcksnaqndkpdkg8ylcj2xhg-nixos-18.09pre143771.a8c71037e04"; outputs = [ "out" ]; system = "x86_64-linux"; type = "derivation"; } { meta = { }; name = "nixos-1803-18.03.132768.94d80eb7247"; out = { outPath = "/nix/store/ih8bhvgmp47rs3acchkc9ch7f8760rpz-nixos-1803-18.03.132768.94d80eb7247"; }; outPath = "/nix/store/ih8bhvgmp47rs3acchkc9ch7f8760rpz-nixos-1803-18.03.132768.94d80eb7247"; outputs = [ "out" ]; system = "x86_64-linux"; type = "derivation"; } ]