可重现的 nix-env -i 仅适用于 Nix,无 NixOS

hac*_*arn 5 nix

我仅用作Nix包管理器,而不使用所有NixOS. 我想要一个可复制的nix-env -i包安装,可以共享和备份。

我知道使用config.nixfor forNixOS但我正在寻找仅包含Nix包的类似功能。

Rob*_*ing 5

从 Nixpkgs 中,您可以使用该buildEnv函数来构建符号链接场,类似于nix-env生成它们的方式。

\n\n

这使您可以将软件包分组到要单独更新的组中。当然,如果适合您的应用程序,单个组是完全有效的。

\n\n

这是一个例子greeting-tools.nix

\n\n
let\n  pkgs = import <nixpkgs> {};\n  inherit (pkgs) buildEnv;\n\nin buildEnv {\n  name = "greeting-tools";\n  paths = [ pkgs.hello pkgs.cowsay pkgs.figlet ];\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以按如下方式安装和删除它

\n\n
$ nix-env -i -f greeting-tools.nix\ninstalling \'greeting-tools\'\n$ hello\nHello, world!\n$ nix-env -e greeting-tools\nuninstalling \'greeting-tools\'\n$ hello\nThe program \xe2\x80\x98hello\xe2\x80\x99 is currently not installed. [...]\n
Run Code Online (Sandbox Code Playgroud)\n\n

要更新您的软件包,您必须重新运行安装命令。nix-env -u将无法正常工作,因为它只查看 Nixpkgs,它可能没有类似的名称。

\n\n

另一种选择可能是家庭经理

\n