Nixpkgs存储库中的“ callPackage”在哪里定义(或通常如何找到Nix lambda定义)?

时间:2019-05-14 00:12:15

标签: nix nixpkgs

找到了许多描述callPackage及其内部信息的资源,但没有一个提及其位置。就像Nix的机密信息一样,手册甚至似乎都在积极地回避这一话题。我可以在一定时间找到它,但这是一个巨大的回购。

资源:

2 个答案:

答案 0 :(得分:2)

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为止的部分是我的<nixpkgs>,因此给您答案:lib/customisation.nix line 108

答案 1 :(得分:1)

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

无论是否为 lambda,它都可以工作。例如。 nix edit nixpkgs\#nix.meta