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

macOS Package Managers: Using Nix alongside Homebrew?

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

我知道 Homebrew 倾向于将东西安装在不同的目录中,但据我所知,Nix 非常干净。如果我理解正确的话,Nix 会将它的所有包都安装在一个目录中。

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

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

是的,您可以将 Nix 与 Homebrew 一起安装。

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 之外对其进行编译,它将无法工作;构建工具找不到库。