macOS 包管理器:将 Nix 与 Homebrew 一起使用?

kok*_*o1G 9 macos homebrew package-managers nix

我想知道在同一系统上安装 Nix 和 Homebrew 会不会有任何问题?

我知道 Homebrew 倾向于在不同的目录中安装东西,但从我读过的内容来看,Nix 非常干净。如果我理解正确,Nix 会将所有软件包都安装在一个目录中。

所以如果是这种情况,我可以尝试并排运行它们吗?我会小心不要从两个地方安装太多相同的软件包(即,我不会从 Homebrew 和 Nix 安装 grep、htop 或其他任何东西,如果我这样做了,我会采取预防措施)。

旁注:这不会是永久性的。我正在考虑从 Homebrew 切换到 Nix(只是为了稍微混淆一下),并且我想在进行飞跃之前在我的主机上尝试 Nix(如果有的话)。我知道我可以在 VM 上尝试 Nix,但除非我在主系统上尝试,否则我不会获得相同的体验。因此,最好将它与 Homebrew 一起安装并在经历删除 Homebrew 并用 Nix 包替换我所有的 Homebrew 包的痛苦之前试一试。

Emm*_*osa 6

是的,您可以在 Homebrew 旁边安装 Nix。

Nix 将安装它的所有软件包/nix/store例如,在我的 NixOS 系统vim上当前安装在/nix/store/j6nrk9h1rpxrzmccm0yq520ik625gd1q-vim-8.1.0578

您的 shell 将根据$PATH设置方式选择是使用 Nix 还是 Homebrew 的软件包。例如,如果碰巧 Nix 路径是第一个,那么它们将优先。

笔记

一个常见的混淆来源是install在 Nix 上意味着不同的东西。当你安装一个包,比如 Python 时,它成为 Nix 环境的一部分,因此可以在不指定完整路径的情况下执行;正如您对任何包管理器所期望的那样。

然而,如果你安装了一个包,比如 Python,作为一个依赖项,Python 会被安装,但它很可能不会被包含在环境中。因此它只能通过绝对路径执行。

在相关说明中,由于类似的原因,如果您使用 Nix 安装一个库,然后尝试在 Nix 之外对其进行编译,它将无法正常工作;构建工具将找不到库。