NixOS重现用户和包?

我是NixOS的新手,并试图学习它的概念。 我对此感到兴奋的原因之一是我希望能够给我一个可重复的系统configuration,类似于使用Ansible for localhost 。 但是,我不知道如何实现这一点。

我知道/etc/nixos/configuration.nix中的/etc/nixos/configuration.nix ,但这些只是系统范围的软件包。 我也知道nix-env命令可以为用户安装一个软件包,但我宁愿将这样的软件包声明为一个文件,我可以检查到源代码pipe理。

有一个特定的文件,我可以configuration(类似于一个剧本),我可以为用户声明一套软件包? 或至less指定其“用户环境”或“configuration文件” (不知道哪个术语是正确的)?

理想情况下,我可以将几个文件复制到另一台计算机,运行一个命令,并且与旧计算机处于相同的状态,包括具有不同套件的多个用户。

最后,我的用例意味着我不应该使用nix-env来安装软件包吗?

所以我问Freenode #nixos IRC频道的人,他们让我回答这个问题。

我需要创build一个~/.nixpkgs/config.nix文件。 在那个文件中,我需要使用buildEnv函数创build一个包集合 ,并使用nix-env安装。

使用nix-env安装即席软件包不会更新~/.nixpkgs/config.nix ,所以对于我的用例,我想避免这样做。 尽pipe使用nix-env安装即席软件包对于实验仍然很有用,因为使用--remove-all开关安装软件包集合将删除那些不在该软件包集合中的所有东西。