找到了很多描述它的资源callPackage
和它的一些内部结构,但没有一个提到它的位置。这就像 Nix 保守得最好的秘密,手册甚至似乎都在积极回避这个话题。我可以在给定的时间内找到它,但这是一个巨大的回购。
资源:
答案实际上指向callPackageWith
函数 in customisation.nix
,但callPackage
它本身是在别处定义的。
找到了很多描述它的资源callPackage
和它的一些内部结构,但没有一个提到它的位置。这就像 Nix 保守得最好的秘密,手册甚至似乎都在积极回避这个话题。我可以在给定的时间内找到它,但这是一个巨大的回购。
资源:
答案实际上指向callPackageWith
函数 in customisation.nix
,但callPackage
它本身是在别处定义的。
nix repl
可以告诉您定义 lambda 的位置。
$ nix repl
Welcome to Nix version 2.2.2. Type :? for help.
nix-repl> pkgs = import <nixpkgs> {}
nix-repl> pkgs.callPackage
«lambda @ /nix/store/9hffpjaa2a7djl19ncky7zcvlhyj76dn-nixos-19.03.172396.d740b2ee855/nixos/lib/customisation.nix:108:31»
直到并包括的部分nixos
是 my <nixpkgs>
,因此给你答案:lib/customisation.nix
第 108 行。
在我使用薄片之前nix edit nixpkgs.callPackage
和薄片nix edit nixpkgs\#callPackage
。
无论它是否为 lambda,它都有效。例如nix edit nixpkgs\#nix.meta