【问题标题】:macOS Package Managers: Using Nix alongside Homebrew?macOS 包管理器:将 Nix 与 Homebrew 一起使用?
【发布时间】:2019-07-19 17:44:12
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: macos homebrew package-managers nix


    【解决方案1】:

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

    【讨论】:

    • 感谢您的信息!!如果我从 Homebrew 和 Nix 安装任何软件包,我将不得不注意我的 PATH 的顺序。
    • 谁能解释一下 Nix 频道(small、darwin 等)之间的区别。
    • 我无法回答这个问题,因为我已停止使用频道;我现在建立了 master 分支。我建议您在 NixOS 社区频道中提问,因为您可能不是第一个提出这个问题的人 :) nixos.org/nixos/community.html
    • nixpkgs-unstable 基于 master 而 nixos、small 和 darwin 基于 stable release 分支
    猜你喜欢
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2020-07-20
    • 2018-07-12
    • 1970-01-01
    相关资源
    最近更新 更多