系统未使用已安装的包,因为不同路径中的现有包
Installed package does not been used by system because existing package in different path
情况
我正在使用 zsh (oh-my-zsh)。
Homebrew 在 /usr/local/bin/
安装所有新包,但是,一些包预装在 Mac OS,例如 Git
, Vim
, emacs
。
当我使用 Brew 安装这些程序的最新版本时,新安装的程序从未被使用,因为现有程序位于 /usr/bin
,它具有更高的优先级。
我的目前的解决方案是手动删除/usr/local/bin/
中的旧版本程序,然后新安装的程序就可以了。
问题
有没有办法设置使用Brew安装的程序在预装程序之前先执行?
非常感谢在 Mac OS 上提供有关包控制的建议和参考。
回答
@tripleee 在下面提供了一个可行的解决方案作为 接受的答案 。
注意:如果您没有 .zlogin
文件,您可以使用
创建
$ touch .zlogin
然后使用您最喜欢的编辑器将 PATH
添加到 .zlogin
文件中。
$ brew doctor
可以为您完成剩下的事情。
您可以根据自己的喜好修改自己的个人PATH
。一个简单的解决方法是添加
PATH=/usr/local/bin:$PATH
您的 .bash_login
、.zlogin
(对于 zsh
)或类似的。
稍后在您的 PATH
中复制 /usr/local/bin
大体上是无害的,但如果您愿意,可以使用
修复它
PATH=/usr/local/bin:${PATH//:\/usr\/local\/bin:/:}
相反。 (如果排在最后,则需要删除一对冒号。)
从 /usr/bin
中删除内容是 极其 冒险的做法。不要那样做。
情况
我正在使用 zsh (oh-my-zsh)。
Homebrew 在 /usr/local/bin/
安装所有新包,但是,一些包预装在 Mac OS,例如 Git
, Vim
, emacs
。
当我使用 Brew 安装这些程序的最新版本时,新安装的程序从未被使用,因为现有程序位于 /usr/bin
,它具有更高的优先级。
我的目前的解决方案是手动删除/usr/local/bin/
中的旧版本程序,然后新安装的程序就可以了。
问题
有没有办法设置使用Brew安装的程序在预装程序之前先执行?
非常感谢在 Mac OS 上提供有关包控制的建议和参考。
回答
@tripleee 在下面提供了一个可行的解决方案作为 接受的答案 。
注意:如果您没有 .zlogin
文件,您可以使用
$ touch .zlogin
然后使用您最喜欢的编辑器将 PATH
添加到 .zlogin
文件中。
$ brew doctor
可以为您完成剩下的事情。
您可以根据自己的喜好修改自己的个人PATH
。一个简单的解决方法是添加
PATH=/usr/local/bin:$PATH
您的 .bash_login
、.zlogin
(对于 zsh
)或类似的。
稍后在您的 PATH
中复制 /usr/local/bin
大体上是无害的,但如果您愿意,可以使用
PATH=/usr/local/bin:${PATH//:\/usr\/local\/bin:/:}
相反。 (如果排在最后,则需要删除一对冒号。)
从 /usr/bin
中删除内容是 极其 冒险的做法。不要那样做。