nix - buildEnv内置函数如何工作?

标签 nix

buildEnv如何工作?为什么是内置的?我该如何使用? What does manifest argument?关于buildEnv的文档在哪里?

最佳答案

寻找的是实际的buildenv.nix还是buildEnv函数?

因为buildenv.nix是Nix软件包管理器的内部机制,所以对于非Nix本身的开发人员来说并没有太大的兴趣。

如果您对buildEnv函数是NixPkgs软件包集合的一部分感兴趣,请在此处实现此函数:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/buildenv/default.nix

即使代码提供了一些提示,我也没有找到任何真正的文档,但是您可以在手册中找到一些示例:
https://nixos.org/nixpkgs/manual/#sec-building-environment

如果我理解正确, list 也是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"; } ]

关于nix - buildEnv内置函数如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49590552/

相关文章:

haskell - 在 nix-shell 中找不到模块

nix - 如何通过在本地构建它们而不是下载预构建的二进制文件来强制 Nix 为 "install packages"?

nix - 使 shell 别名以声明方式依赖于包

c++ - 如何让 OpenCV 在 nix 中工作?

macos - 安装在 OSX 上时 nix.conf 位于何处?

postgresql - 如何在 Nixos 上安装 postgresql-client/psql

nix - 从 Nix 模块选项部分引用 pkgs.system 时无限递归

coq - 在 Catalina 上通过 nix 安装 mathcomp 8.12/8.13 时出现问题

haskell - 从堆栈项目生成 Nix 包

travis-ci - Travis-ci 何时支持 NixOS/NixOps?