Homebrew(与Macports不同)不会将程序放在系统之前


1

Macports插入 /opt/local/bin/ 在之前 /usr/bin 在路径中,如果两个文件夹中都存在相同的程序,则安装Macports的程序优先。

我不清楚Homebrew如何处理这个问题。举一个具体的例子,说我跑 brew install git,我现在有

> /usr/local/bin/git --version
git version 2.14.2
> git --version
git version 2.13.5 (Apple Git-94)

要使用更新的(git 2.14),使用起来很繁琐 /usr/local/bin/git。另外,更优先考虑 /usr/local/bin 我自己可能会产生不良副作用。

当更新的Homebrew程序与已经在macOS上运行的程序发生冲突时,运行它们的标准方法是什么?对于 python 我已经看到Homebrew通过要求用户键入来避免冲突 python2 要么 python3。对于这种情况,这一点不太清楚 git

Answers:


2

事实上,一般惯例就是提出来 /usr/local/bin 在之前 /usr/bin。这可以通过编辑来实现 /etc/path 档案或 sudo launchctl config user path "/usr/local/bin:$PATH"。这将导致可执行文件 /usr/bin 被那些人所遮蔽 /usr/local/bin。该 自制常见问题 暗示这一点。

自制食谱将故意不将任何程序链接到 /usr/local/bin 这可能会导致系统范围的冲突(自制的可执行文件实际安装在 /usr/local/Cellar 和符号链接到 /usr/local/bin )。当你安装一个可能引起冲突的软件包时,自制软件会警告你,并说出“我们没有自动链接这个软件包。”如果你真的想要,你可以运行`brew link ... Homebrew通常非常善于尊重现有的系统包。

作为一个经验轶事,我一直都是阴影 /usr/bin/usr/local/bin 并且从未遇到过任何问题。 YMMV,当然。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.