我是
NixOS的新手,并试图学习它的概念.我很兴奋的原因之一是我希望它能够给我一个可重现的系统配置,类似于使用
Ansible for localhost.但是,我不知道如何实现这一点.
我知道environment.systemPackages
in /etc/nixos/configuration.nix
,但这些只是系统范围的包.我也知道nix-env
命令可以为用户安装一个包,但我宁愿在一个文件中声明这样一个包,我可以检查源代码控制.
是否有我可以配置的特定文件(类似于剧本),我可以为用户声明一组包?或至少指定其“user environment”或“profiles”(不确定哪个术语是正确的)?
理想情况下,我可以获取一些文件,将它们复制到另一台计算机,运行命令,它与旧计算机处于相同状态,包括具有不同程序包集的多个用户.
最后,我的用例是否意味着我永远不应该使用nix-env
来安装软件包?
解决方法
所以我问Freenode #nixos IRC频道的人们,他们引导我回答这个问题.
我需要创建一个~/.nixpkgs/config.nix
文件.在该文件中,我需要使用buildEnv function创建package collection并使用nix-env进行安装.
使用nix-env
安装ad-hoc软件包不会更新〜/ .nixpkgs / config.nix,因此对于我的用例,我希望避免这样做.虽然,值得注意的是,使用nix-env安装ad-hoc软件包仍然可用于实验,因为使用–remove-all开关安装软件包集合将删除该软件包集合中没有的所有内容.