如何收集NixOS系统的完整配置?

时间:2015-12-22 12:28:10

标签: nixos nix

我读了一些关于NixOS的内容,并且最近尝试过,因为我觉得它可以让我只用一个文件来配置Linux。

当我使用它时,我安装了一堆包含nix-env的软件包,因此它们并没有在configuration.nix中结束,但我可以稍后卸载它们并将它们添加到configuration.nix手工制作。我在npm i -g <package>之类的东西会全局安装它,所以最终会在configuration.nix中,并且可以简单地复制到另一台机器上。

此外,我安装了zshatom之类的东西,他们有一个完全不同的配置和自定义方法(bashscript,javascript,less等)。

Nix / NixOS还有办法跟踪特定于软件包的配置吗?

它是否已经发生并且我没有看到它?就像包的nix表达式知道包将存储其配置等的位置一样。

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

2 个答案:

答案 0 :(得分:7)

  1. 如果您希望通过configuration.nix安装软件包,那么最简单的方法是将它们添加到environment.systemPackages属性中。其中列出的软件包将自动提供给计算机上的所有用户。据我所知,没有shell命令可用于自动维护该属性。管理该列表的唯一方法是修改configuration.nix并手动添加您希望安装的软件包。

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

答案 1 :(得分:1)

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

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