brew医生说“错误:/ usr / bin出现在/ usr / local / bin之前”如何解决?
Adams-MacBook-Pro% brew doctor Error: /usr/bin occurs before /usr/local/bin This means that system-provided programs will be used instead of those provided by Homebrew. The following tools exist at both paths: clusterdb createdb createlang createuser dropdb droplang dropuser ecpg git git-cvsserver git-receive-pack git-shell git-upload-archive git-upload-pack gitk pg_config pg_dump pg_dumpall pg_restore pg_upgrade psql reindexdb vacuumdb Consider amending your PATH so that /usr/local/bin is ahead of /usr/bin in your PATH.
这是我的path:
Adams-MacBook-Pro% echo $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
我认为把事情推到前面是危险的 我如何解决这个问题? 另外,我甚至不知道在哪里findpath中声明的/ user / bin。
谢谢
$ PATH只是一个包含string的variables。 把东西放在前面:
% PATH=/usr/local/bin:$PATH % echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
这并不危险,因为它只适用于你打开的当前shell(它不会影响系统或其他shell的path)。
要自动更改所有打开的shell的path,请将其放入~/.profile
。 如果该文件不存在,可以创build该文件。
在~/.profile
:
homebrew=/usr/local/bin:/usr/local/sbin export PATH=$homebrew:$PATH
export
使variables可用于shell的任何subprocess。
我find了另一种解决方法。
sudo vim /etc/paths
并像这样添加/ usr / local / bin和/ usr / local / sbin
/usr/local/bin /usr/local/sbin /usr/bin /bin /usr/sbin /sbin
打开一个新的terminal标签,然后你会看到
~ $ env|grep PATH PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
只需在您最喜爱的terminal应用程序中运行以下行:
echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile
重新启动你的terminal并运行
brew doctor
这个问题应该解决
我刚刚创build了一个.bashrc文件并添加了
自制=在/ usr / local / bin目录:在/ usr / local / sbin中
export PATH = $ homebrew:$ PATH
这似乎已经成功了!
也许OP的使用zsh 。
解决这个问题的方法是在每次打开iterm时编辑〜/ .zshrc来加载这个文件。
改变有关PATH的话。
如果你真的想使它成为永久的和默认的,编辑文件/ etc / paths(使用sudo)并将/ usr / local / bin移动到列表顶部。
在我自己的.bash_profile中,我使用了一个叫做“pathadd”的脚本,它可以防止我的PATH变得笨拙并且在shell被分叉时会被重复。 所以我专门采取了/ etc / paths动作,以避免在PATH中重复添加/ usr / local / bin。
使用$ PATH进行更改后,您需要重新启动terminal。
在OS X需要编辑的Mountain Lion是~/.bash_profile