"active Nix expression" 是什么?

What is the "active Nix expression"?

我注意到各种 nixos 命令的描述都引用了一个叫做 "active Nix expression" 的东西。例如,nix-env 的手册页包括:

   --file / -f path
       Specifies the Nix expression (designated below as the active Nix expression) used by the --install, --upgrade, and --query
       --available operations to obtain derivations. The default is ~/.nix-defexpr.

这是什么"active Nix expression"?它在哪里定义?它只是通常写在 /etc/nixos/configuration.nix 中的内容还是由 nix-shell 定义的内容?

这是 Nix 表达式的文件,在该文件中计算 -A 指定的任何属性。 (缺席-A,该内容预计直接是推导)。

假设您有一个 mydir/default.nix 文件,该文件计算出一个具有键 foobarbaz 的属性集,每个键都映射到一个推导为一个值。

在这种情况下,运行ning nix-env -f mydir -iA foo 将加载 mydir/default.nix,在该加载代码的上下文中评估 foo,运行 任何关联的构建步骤,并将该软件添加到您的活动环境中。