Flake 更新失败,nimPackages 丢失,它去哪儿了?

问题描述 投票:0回答:1

不久前,我有一个 flake.nix 可以工作:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = { self, nixpkgs, flake-utils, }:
    flake-utils.lib.eachDefaultSystem (system:
      let pkgs = import nixpkgs { inherit system; };
      in {
        packages = rec {
          hello = pkgs.nim2Packages.buildNimPackage {
            pname = "hello";
            version = "0.1.0";
            src = ./hello;
          };

          default = hello;
        };
      });

}

运行后

nix flake update
它停止工作并显示此错误消息:

error: attribute 'nimPackages' missing

       at /nix/store/rkp543s3nhhichwg03kffd515411mikm-source/test/samples/greeter/flake.nix:12:19:

           11|         packages = rec {
           12|           hello = pkgs.nimPackages.buildNimPackage {
             |                   ^
           13|             pname = "hello";
       Did you mean elmPackages?

我该如何修复它?

nix nim-lang nixpkgs
1个回答
0
投票

我做了一个 git bisect 并追踪到 this nixpkgs PR

有两个更改,第一个只是重命名/重组:

pkgs.nim2Packages.buildNimPackage
->
pkgs.buildNimPackage

另一个要求我生成一个锁定文件:

❯ nix-shell -p nim_lk
$ nim_lk ./hello > ./hello/lock.json
$ exit
❯ git add ./hello/lock.json

然后我需要在调用中引用锁定文件

buildNimPackage
。这是更改后的
flake.nix

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = { self, nixpkgs, flake-utils, }:
    flake-utils.lib.eachDefaultSystem (system:
      let pkgs = import nixpkgs { inherit system; };
      in {
        packages = rec {
          hello = pkgs.buildNimPackage {
            pname = "hello";
            version = "0.1.0";
            src = ./hello;
            lockFile = ./hello/lock.json;
          };
          default = hello;
        };
      });
}
© www.soinside.com 2019 - 2024. All rights reserved.