我注意到,各种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
定义的内容?
答案 0 :(得分:2)
这是从其中评估用-A
指定的任何属性的Nix表达式的文件。 (如果没有-A
,则该内容应直接作为派生内容。)
假设您有一个mydir/default.nix
文件,其文件的键为foo
,bar
和baz
,其属性值映射为一个派生值
在这种情况下,运行nix-env -f mydir -iA foo
将加载mydir/default.nix
,在所加载的代码的上下文中评估foo
,运行任何关联的构建步骤,然后将该软件添加到活动环境中。