您应该将软件包安装到系统配置文件中还是安装到用户配置文件中取决于您希望实现的目标。没有一个正确的答案。相反,两种类型的安装软件包有不同的优点和缺点。
系统包在全局配置文件中定义,该文件通常位于
/etc/nixos/configuration.nix
.除以外的用户
root
通常无法编辑该文件,因此无法从列表中添加或删除包。中定义的包将作为
nixos-rebuild
他们将在
$PATH
系统的每个用户。然而,如果这些包中的任何一个由于某种原因无法编译,那么您就无法重建系统,也就是说,您可能会发现自己处于无法更新内核的情况,例如,
nano
无法编译。关注
master
Nixpkgs-git存储库的分支可能经常遇到这个问题,但对于
unstable
或
release-x.y
频道。
用户包可以由系统上的任何用户安装、更新和卸载,而无需超级用户权限。一个用户的包对另一个用户不可见(除非她有意识地将其导入
$路径
). 因此,两个用户可以安装同一软件包的两个不同版本。
如果用户没有定期更新她的个人资料,那么您将在Nix商店中积累无法垃圾收集的旧包。这可能是一个问题或功能,具体取决于您如何看待它。另一方面,每次更新系统时,系统软件包都会更新,因此这些软件包占用的磁盘空间往往较小。
就我个人而言,我更喜欢尽可能缩小我的系统配置文件;我将软件包主要安装到用户配置文件中
nix-env
。然而,我认识很多人,他们做的恰恰相反,我们都相处得很好