首页 > 解决方案 > value 是一个函数,而在评估“输出”时需要一个集合

问题描述

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

这是导致以下跟踪的薄片:

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,因为我不知道这个错误是从哪里产生的。

标签: nixnixos

解决方案


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


推荐阅读