![Nix - 为一个用户创建多个配置文件](https://linux22.com/image/230590/Nix%20-%20%E4%B8%BA%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E5%88%9B%E5%BB%BA%E5%A4%9A%E4%B8%AA%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.png)
为一个用户创建多个 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,不会影响其他进程。