如何使用 nix-copy-closure 复制 nix-env 配置文件?

如何使用 nix-copy-closure 复制 nix-env 配置文件?

我正在使用具有多个通道和本地覆盖的 nix-env 在多台计算机上的 macOS 和 Nixos Linux 上安装软件包。有时我会因为问题而从更新中排除软件包。所有这些都导致需要大量手动工作来维护我的用户环境。我想使用 nix-copy-closure 将尽可能多的内容从一台计算机复制到另一台计算机。我知道可以使用 nix-copy-closure 复制整个配置文件,但我该如何安装它呢?如果这不起作用,是否可以复制所有已安装的软件包,然后逐个安装它们。

我知道以下相关问题:https://stackoverflow.com/questions/28159181/how-to-copy-a-nix-profile但它的解决方案并不令我满意,因此我提出了这个问题。

答案1

创建一个“metapackge”,如下所示的文件mypkgs.nix

{ pkgs ? import <nixpkgs> {}, ... } :
pkgs.buildEnv {
  name = "mypkgs";
  paths = with pkgs; [ bat cowsay ];
}

nix-build mypkgs.nix将构建包并打印其路径,您可以将其与nix-copy-closure和一起使用nix-env -i

您不需要复制mypkgs.nix到远程主机,因为您可以直接安装存储路径。

相关内容