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.
这是我的路径:
Adams-MacBook-Pro% echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
我认为将事情移到前线是危险的?我该如何解决这个问题?另外,我甚至不确定在哪里找到路径中声明/ user / bin的位置。
由于
答案 0 :(得分:47)
$ PATH只是一个包含字符串的变量。把事情放在前面:
% PATH=/usr/local/bin:$PATH
% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
这并不危险,因为它只适用于您打开的当前shell(它不会影响系统或其他shell的路径)。
要自动更改您打开的所有shell的路径,请将其放入~/.profile
。如果该文件尚不存在,您可以创建该文件。
在~/.profile
:
homebrew=/usr/local/bin:/usr/local/sbin
export PATH=$homebrew:$PATH
export
使变量可用于shell的任何子进程。
答案 1 :(得分:23)
我找到了解决这个问题的另一种方法。
sudo vim /etc/paths
并像这样添加/ usr / local / bin和/ usr / local / sbin
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
打开一个新的终端标签,然后你会看到
~ $ env|grep PATH
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
答案 2 :(得分:10)
只需在您喜爱的终端应用程序中运行以下行:
echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile
重新启动终端并运行
brew doctor
问题应该解决
答案 3 :(得分:4)
我刚刚创建了一个.bashrc文件并添加了
自制=的/ usr / local / bin中:在/ usr / local / sbin中
export PATH = $ homebrew:$ PATH
这似乎已经成功了!
答案 4 :(得分:3)
也许OP使用 zsh
解决问题的方法是每次打开时都编辑〜/ .zshrc iterm 将加载此文件。
更改路径的字词。
答案 5 :(得分:2)
如果你真的想让它永久化并默认,请编辑文件/ etc / paths(使用sudo)并将/ usr / local / bin移动到列表顶部。
在我自己的.bash_profile中,我使用了一个名为“pathadd”的脚本,它可以防止我的PATH在分叉shell时变得笨重且充满重复。所以我专门采取了/ etc / paths动作,以避免在一次又一次地将/ usr / local / bin添加到前面时在PATH中有重复的目录。
答案 6 :(得分:1)
使用$ PATH进行任何更改后,您需要重新启动终端。
答案 7 :(得分:0)
在需要编辑的OS X Mountain Lion上,~/.bash_profile