Nix 中的 buildPackages 是什么?

dit*_*lav 4 nixos nix

所以我正在浏览专有的 nix 代码库,并试图理解它。它正在构建 Rust 包等。有一个使用 crate2nix 自动生成的 nix 代码,其中调用了nixpkgs.buildPackages. 在谷歌搜索这个表达式后,我得到了关于人们使用它来编译多种语言的非常随机的结果,但我找不到某个文档提到这一点的单个案例?这是一些建筑尼克斯表达吗?它记录在哪里?

小智 6

这看起来像是一个包,设置为在交叉编译期间显式引用主机上构建的所有包(请参阅pkgs/top-level/stage.nix)。

$ nix repl
Welcome to Nix version 2.3.10. Type :? for help.

nix-repl> :l <nixpkgs>
Added 13917 variables.

nix-repl> :t buildPackages
a set

nix-repl> builtins.length (builtins.attrNames buildPackages)
13918

nix-repl> lib.lists.take 20 (builtins.attrNames buildPackages)
[ "AAAAAASomeThingsFailToEvaluate" "AMB-plugins" "ArchiSteamFarm" "AusweisApp2" "CHOWTapeModel" "CoinMP" "DisnixWebService" "EBTKS" "EmptyEpsilon" "FIL-plugins" "Fabric" "LAStools" "LASzip" "LASzip2" "Literate" "MACS2" "MIDIVisualizer" "MMA" "NSPlist" "OSCAR" ]
Run Code Online (Sandbox Code Playgroud)