什么是“主动Nix表达式”?

时间:2019-07-12 19:57:57

标签: nix nixos

我注意到,各种nixos命令的描述都引用了称为“活动Nix表达式”的内容。例如,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.

这是什么“活跃的Nix表达”?它在哪里定义?到底是简单地用/etc/nixos/configuration.nix编写的内容,还是另外用nix-shell定义的内容?

1 个答案:

答案 0 :(得分:2)

这是从其中评估用-A指定的任何属性的Nix表达式的文件。 (如果没有-A,则该内容应直接作为派生内容。)

假设您有一个mydir/default.nix文件,其文件的键为foobarbaz,其属性值映射为一个派生值

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