6

找到了很多描述它的资源callPackage和它的一些内部结构,但没有一个提到它的位置。这就像 Nix 保守得最好的秘密,手册甚至似乎都在积极回避这个话题。我可以在给定的时间内找到它,但这是一个巨大的回购。

资源:


答案实际上指向callPackageWith函数 in customisation.nix,但callPackage它本身是在别处定义的

4

2 回答 2

10

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 行

于 2019-05-14T06:55:46.717 回答
1

在我使用薄片之前nix edit nixpkgs.callPackage和薄片nix edit nixpkgs\#callPackage

无论它是否为 lambda,它都有效。例如nix edit nixpkgs\#nix.meta

于 2021-04-18T08:40:20.083 回答