1

私は Nix が初めてで、例に示されているhelloの派生を理解しようとしています。

構文と何をすべきかは理解できますが、最初の引数 (特にperlone_ がどのように供給されるのか) がわかりません。

つまり、perlこの派生を呼び出す前に引数を設定しているのは誰ですか。perlそれはの依存関係であることを意味しhelloますか?

4

1 に答える 1

2

パッケージは通常、set of dependencies -> derivation関数として記述され、後でアセンブルされます。あなたが尋ねる引数は、Nixpkgs のすべてのパッケージのセットを保持する pkgs/top-level/all-packages.nix から供給されます。

all-packages.nix で の行を見つけると、helloそれが using であることに気付くでしょうcallPackage- その署名はpath to Nix expression -> overrides -> derivation. callPackageパスをロードし、ロードした関数を見て、引数ごとoverridesに all-packages.nix の膨大なセットから、または指定されていない場合は値を提供します。

の優れた説明については、http://lethalman.blogspot.com/2014/09/nix-pill-13-callpackage-design-pattern.htmlcallPackageを参照してください。これは、あまり凝縮されていない説明であり、どのようにして自分自身を発明できたのかを示しています :-) .callPackage

于 2015-01-10T22:13:52.440 に答える