value 是一个函数,而在评估 'outputs' 时需要一个集合

value is a function while a set was expected while evaluating 'outputs'

我在尝试检查薄片时遇到上述错误;我正在尝试在非 NixOS 系统上使用 flake-compat 以与 home-manager.

兼容

这是导致以下跟踪的 ​​flake

error: value is a function while a set was expected

       at /nix/store/l22dazwy8cgxdvndhq45br310nap92x3-source/etc/nixos/flake.nix:167:136:
    
          166|
          167|     outputs = inputs@{ self, nix, nixpkgs, flake-utils, flake-compat, ... }: with builtins; with nixpkgs.lib; with flake-utils.lib; let
             |
^
          168|

       … while evaluating 'outputs'

       at /nix/store/l22dazwy8cgxdvndhq45br310nap92x3-source/etc/nixos/flake.nix:167:15:

          166|
          167|     outputs = inputs@{ self, nix, nixpkgs, flake-utils, flake-compat, ... }: with builtins; with nixpkgs.lib; with flake-utils.lib; let
             |               ^
          168|

       … from call site

       at «string»:45:21:

           44|
           45|           outputs = flake.outputs (inputs // { self = result; });
             |                     ^
           46|

       … while evaluating anonymous lambda

       at «string»:10:13:

            9|     builtins.mapAttrs
           10|       (key: node:
             |             ^
           11|         let

       … from call site

       … while evaluating the attribute 'root'

       … while evaluating anonymous lambda

       at «string»:2:23:

            1|
            2| lockFileStr: rootSrc: rootSubdir:
             |                       ^
            3|

       … from call site

不幸的是,我无法提供 minimal reproducible example 因为我不知道这个错误是从哪里产生的。

事实证明,我的 lib 值实际上是一个函数;不幸的是,由于 nix flakes 仍然不稳定,所以它没有完全显示出发生的位置。