6

这些天我读了一些关于 NixOS 的文章并尝试了它,因为我的印象是它可以让我只用一个文件配置 Linux。

当我使用它时,我用 安装了一堆包nix-env,所以它们最终没有出现在 中configuration.nix,但我可以稍后简单地卸载它们并configuration.nix手动添加它们。我有类似的东西npm i -g <package>会在全球范围内安装它,所以它最终会出现在configuration.nix并且可以简单地复制到另一台机器上。

zsh此外,我安装了类似and之类的东西atom,它们具有完全不同的配置和自定义方法(bashscript、javascript、less 等)。

Nix/NixOS 是否也有办法跟踪特定于包的配置?

它是否已经发生而我没有看到?就像包的 nix 表达式知道包将在哪里存储其配置等。

我的意思是,很高兴我可以将这些包添加到主配置中,当在另一台 PC 上使用它时,我安装了相同的软件,但我仍然看到自己为已安装的包编写了相当多的配置。

4

2 回答 2

8
  1. 如果您希望通过 安装软件包configuration.nix,那么完成此操作的最简单方法是将它们添加到environment.systemPackages属性中。此处列出的软件包将自动可供机器上的所有用户使用。不过,据我所知,没有可用于自动维护该属性的 shell 命令。管理该列表的唯一方法是编辑configuration.nix并手动添加您想要安装的软件包。

  2. Nix 不管理特定于包的配置文件。你可能知道,NixOS 提供了这样一种机制来管理 中的文件,但不存在/etc类似的机制来管理等中的配置文件。$HOMEGithub 上的 PR https://github.com/NixOS/nixpkgs/pull/9250包含一个向 Nix 添加此功能的具体提议,但它尚未合并,因为它需要一些有争议的更改。

于 2016-01-05T11:09:46.217 回答
1

Nix 目前不提供管理用户特定配置或语言特定包管理器的方法。AFAICT 那是因为与为 sshd 等生成配置相比,它是一个非常复杂和固执己见的领域。

但是,有基于 Nix 的项目至少可以为您的问题的某些部分提供解决方案。要管理用户配置(zsh 等),请查看home manager

于 2020-12-31T11:10:06.063 回答