macOS软件包管理器:与Homebrew一起使用Nix吗?

时间:2019-02-26 08:24:44

标签: macos homebrew package-managers nix

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

我知道Homebrew倾向于将内容安装在不同的目录中,但是据我所读,Nix非常干净。如果我正确理解这一点,那么Nix会将其软件包全部安装在一个目录中。

因此,如果是这种情况,我可以尝试并排运行它们吗?我会注意不要在两个地方都安装太多相同的软件包(即,我不会安装grep,htop或Homebrew和Nix的其他软件包,如果这样做,我会采取预防措施)。

旁注:这将不是永久性的。我正在考虑从Homebrew切换到Nix(只是为了混合一些东西),我想在实现飞跃之前(如果有的话)在主机上尝试Nix。我知道我可以在VM上尝试Nix,但是除非在主系统上尝试,否则我不会获得相同的体验。因此,最好先将其安装在Homebrew上,然后再尝试移除Homebrew并用Nix软件包替换我所有的Homebrew软件包。

1 个答案:

答案 0 :(得分:0)

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

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

您的外壳将根据$PATH的设置来选择使用Nix还是Homebrew的软件包。例如,如果碰巧首先使用Nix路径,则它们将优先。

注意

混淆的一个常见根源是 install 在Nix上的含义有所不同。当您安装软件包(例如Python)时,它将成为Nix环境的一部分,因此无需指定完整路径即可执行该软件包。就像您期望的任何软件包管理器一样。

但是,如果安装的软件包依赖于Python,例如,Python将得到安装,但很有可能不会包含在环境中。因此,只能通过绝对路径执行。

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