Nix - 为一个用户创建多个配置文件

Nix - 为一个用户创建多个配置文件

为一个用户创建多个 nix 配置文件的正确方法是什么?我想以不同的方式配置它们,并使用 direnv 等工具在它们之间自动切换。

这是我找到的关于使用绝对路径创建新配置文件的唯一文档。

nix-env --switch-profile <new-absolute-path>

这让我想知道我应该在哪里放置新的配置文件(对于 NixOS / 非 NixOS):

nix-env --switch-profile /nix/var/nix/profiles/myprofile
nix-env --switch-profile /nix/var/nix/profiles/per-user/myprofile
nix-env --switch-profile ~/.local/state/nix/profiles/myprofile

然而答案在这个问题似乎暗示绝对路径是可以避免的。

答案1

在评论中在这个问题上,查尔斯·达菲建议使用nix-direnv:

一般来说,如果您使用 direnv,则无需手动创建不同的配置文件 - 您可以在与 direnv 关联的任何项目目录中拥有 shell.nix 或 flake.nix;如果您有 direnv 激活该 shell(并假设它是一个开发项目,该内容可能位于源代码控制中),那么还需要配置文件吗?

在实践中,这确实比切换到单独的配置文件更好,因为它仅更改特定的 shell,不会影响其他进程。

相关内容