web-dev-qa-db-fra.com

brew doctor dit "Erreur: / usr / bin se produit avant / usr / local / bin" comment résoudre ce problème?

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.

Voici mon chemin:

Adams-MacBook-Pro% echo $PATH                                  
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Je pensais qu'il était dangereux de déplacer les choses vers l'avant? Comment résoudre ce problème? De plus, je ne sais même pas où trouver où/user/bin est déclaré dans le chemin.

Merci

36
AdamT

$ PATH est juste une variable contenant une chaîne. Pour mettre quelque chose en avant:

% PATH=/usr/local/bin:$PATH
% echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Ce n'est pas dangereux, car il ne s'applique qu'au shell actuel que vous avez ouvert (cela n'affectera pas le chemin de votre système ou d'autres shells).

Pour changer automatiquement le chemin pour tous les shells que vous ouvrez, mettez-le dans ~/.profile. Vous pouvez créer ce fichier s'il n'existe pas déjà.

Dans ~/.profile:

homebrew=/usr/local/bin:/usr/local/sbin
export PATH=$homebrew:$PATH

export met la variable à la disposition de tous les processus enfants du Shell.

47
Dean

J'ai trouvé un autre moyen de résoudre ce problème.

Sudo vim /etc/paths

et ajoutez/usr/local/bin et/usr/local/sbin comme ceci

/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

ouvrez un nouvel onglet de terminal, puis vous verrez

~ $ env|grep PATH
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
23
Lelouchcr

Exécutez simplement la ligne suivante dans votre application de terminal préférée:

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

Redémarrez votre terminal et exécutez

brew doctor

le problème doit être résolu

10
iceturk22

Je viens de créer un fichier .bashrc et d'ajouter

homebrew =/usr/local/bin:/usr/local/sbin
export PATH = $ homebrew: $ PATH

Cela semblait avoir fait l'affaire!

4
pixel 67

Peut-être que OP utilise zsh.
La façon de le résoudre est d'éditer ~/.zshrc chaque fois que vous ouvrez iterm chargera ce fichier.
Modifiez les mots concernant CHEMIN .

3
Slahser

Si vous voulez vraiment le rendre permanent et par défaut, éditez le fichier/etc/chemins (en utilisant Sudo) et déplacez/usr/local/bin en haut de la liste.

Dans mon propre .bash_profile, j'utilise un script appelé "pathadd" qui empêche mon PATH de devenir encombrant et plein de doublons lorsque les shells sont bifurqués. J'ai donc pris l'action/etc /path spécifiquement pour éviter d'avoir des répertoires en double dans le PATH en ajoutant/usr/local/bin à l'avant encore et encore.

2
Mojo

Vous devez redémarrer votre terminal après toute modification avec $ PATH.

Sur OS X Mountain Lion qui nécessitait des modifications était ~/.bash_profile

0
Slava V