37
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 在路径中声明的位置。

谢谢

4

8 回答 8

49

$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 的任何子进程。

于 2012-07-04T22:22:41.820 回答
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
于 2014-06-14T11:58:49.270 回答
10

只需在您喜欢的终端应用程序中运行以下行:

echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile

重新启动终端并运行

brew doctor

这个问题应该得到解决

于 2013-10-31T01:14:14.533 回答
4

我刚刚创建了一个 .bashrc 文件并添加了

homebrew=/usr/local/bin:/usr/local/sbin
导出 PATH=$homebrew:$PATH

这似乎成功了!

于 2013-04-28T11:52:51.810 回答
3

也许OP正在使用zsh
解决它的方法是编辑~/ .zshrc每次打开iterm时都会加载这个文件。
更改有关PATH的话。

于 2014-04-08T12:43:48.623 回答
2

如果您真的想将其永久化和默认设置,请编辑文件 /etc/paths(使用 sudo)并将 /usr/local/bin 移动到列表顶部。

在我自己的 .bash_profile 中,我使用了一个名为“pathadd”的脚本,它可以防止我的 PATH 在 shell 被分叉时变得笨拙和充满重复。因此,我专门采取了 /etc/paths 操作,通过一次又一次地将 /usr/local/bin 添加到前面来避免在 PATH 中出现重复的目录。

于 2013-10-20T16:20:00.717 回答
1

使用 $PATH 进行任何更改后,您需要重新启动终端。

于 2014-05-02T01:20:36.213 回答
0

On OS X Mountain Lion that needed edits was ~/.bash_profile

于 2013-08-19T09:33:49.447 回答