【发布时间】:2021-05-14 20:29:39
【问题描述】:
所以我正在浏览一个专有的 nix 代码库,并试图理解它。它正在构建 rust 包等。有这个使用 crate2nix 自动生成的 nix 代码,其中包括调用 nixpkgs.buildPackages。在谷歌搜索这个表达式之后,我得到了关于人们使用它来编译多种语言的非常随机的结果,但是我找不到某个文档提到这个的单个案例?这是一些内置的 nix 表达式吗?它记录在哪里?
【问题讨论】:
所以我正在浏览一个专有的 nix 代码库,并试图理解它。它正在构建 rust 包等。有这个使用 crate2nix 自动生成的 nix 代码,其中包括调用 nixpkgs.buildPackages。在谷歌搜索这个表达式之后,我得到了关于人们使用它来编译多种语言的非常随机的结果,但是我找不到某个文档提到这个的单个案例?这是一些内置的 nix 表达式吗?它记录在哪里?
【问题讨论】:
这看起来像是一个包集,用于在交叉编译期间显式引用主机上构建的所有包(请参阅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" ]
【讨论】: