gpt4 book ai didi

nix 用户包与系统包

转载 作者:行者123 更新时间:2023-12-04 00:07:40 25 4
gpt4 key购买 nike

我用 Vagrant + virtualBox和一个 Debian 8/Ubuntu我的开发环境的图像。

我想用nix用于配置,但我无法获得 nixOS完全正确地工作(即使用网络,配置......),但我很乐意切换。所以我回到 nix + Debian 8nix + Ubuntu模仿生产服务器。

我不太明白 user packages 之间的区别和 system packages以及在我的上下文中最好使用什么,以便能够将其重用于生产服务器。

我应该使用 nix -i 安装软件包吗? ,或编辑 configuration.nix文件 ?

最佳答案

您应该将软件包安装到系统配置文件中还是用户配置文件中取决于您想要实现的目标。没有唯一的正确答案。相反,两种类型的安装包都有不同的优缺点。

系统包在全局配置文件中定义,该文件通常位于 /etc/nixos/configuration.nix . root以外的用户通常不能编辑该文件,因此不能从列表中添加或删除包。在那里定义的包将作为 nixos-rebuild 的一部分安装它们将在 $PATH 中提供给您系统的每个用户。但是,如果这些软件包中的任何一个由于某种原因无法编译,那么您将无法重建系统,即您可能会发现自己处于无法更新内核的情况,例如,nano不编译。关注 master 的人Nixpkgs git 存储库的分支可能经常遇到这个问题,但对于unstable 的用户来说,这种情况不会发生太多。或 release-x.y channel 。

系统上的任何用户都可以安装、更新和卸载用户包,而无需 super 用户权限。一个用户的包对另一个用户是不可见的(除非她有意识地将它们导入 $PATH )。因此,两个用户可以安装同一个包的两个不同版本。

如果用户不定期更新她的个人资料,那么您将在 Nix 商店中积累无法进行垃圾回收的旧包。这可能是一个问题或一个功能,这取决于您如何看待它。另一方面,系统包在每次更新系统时都会更新,因此它们往往具有较小的磁盘空间占用。

就我个人而言,我更喜欢让我的系统配置文件尽可能小;我主要使用 nix-env 将软件包安装到用户配置文件中.我认识很多人,然而,他们做的恰恰相反,我们都相处得很好。 :-)

关于nix 用户包与系统包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31505436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com