【发布时间】:2021-07-01 16:49:01
【问题描述】:
有没有办法以与 nix copy 兼容的方式恢复由 nixpkgs 创建的带有覆盖的包集?
以nix repl中的以下语句为例
overlays = [(self: super: {aardvark = "does aardvark";})]
pkgs = import <nixpkgs> { inherit overlays; }
pkgs2 = import pkgs.path {}
pkgs3 = import pkgs.path { inherit (pkgs) overlays; }
pkgs.aardvark 存在并被叠加层放在那里,但如果我尝试重新导入生成的 pkgs 路径,我只会导入 <nixpkgs> 的商店版本。
pkgs3.aardvark 也存在,但这不是我正在寻找的解决方案。
我的预期用途是使用叠加层执行pkgs 的nix copy。我可以复制 pkgs.path 定义,但不能复制覆盖,因为它是 lambda 列表,而不是路径。我希望有一个非常简单的解决方案,例如 pkgs.path 而不是 pkgs.drv 或 pkgs.out 之类的属性,可以使用例如导入import pkgs.out 并提供覆盖的包集。
【问题讨论】:
标签: nix