Modification de PATH pour que / usr / local / bin devance / usr / bin


24

J'essaie d'installer brew mais j'obtiens l'avertissement suivant:

Warning: /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:

2to3
2to3-2.7
idle
idle2.7
pydoc
pydoc2.7
python
python-config
python2.7
python2.7-config
pythonw
pythonw2.7
smtpd.py
smtpd2.7.py

Consider amending your PATH so that /usr/local/bin
is ahead of /usr/bin in your PATH.

Je ne sais pas comment modifier le chemin. J'ai exploré plusieurs fichiers de ce message de débordement de pile (http://stackoverflow.com/questions/8886114/using-brew-with-ruby-1-9-2), mais je ne trouve pas de chemin pertinent à modifier. Le seul fichier que j'ai qui existe est mon fichier / etc / profile qui ressemble actuellement à:

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/2.7/local/bin:${PATH}"
export PATH

Je voulais simplement désinstaller python puis le réinstaller via homebrew, mais je suis un peu nerveux à l'idée de casser trop de choses à la fois.

Existe-t-il un moyen facile de modifier le chemin? Dois-je créer un fichier .bash_profile? Merci pour toute aide à l'avance.

Réponses:


30

Oui, créez un .bash_profilefichier dans votre répertoire personnel contenant

PATH="/usr/local/bin:$PATH"

puis effectuez l'une des opérations suivantes pour activer la modification

  • exécuter . ~/.bash_profile
  • exécuter PATH="/usr/local/bin:$PATH"dans le shell actuel
  • redémarrer le terminal

2
@threenovation si la réponse ci-dessus est correcte, puis-je vous suggérer de la marquer comme réponse (cliquez sur la coche à côté de la réponse)
Stu Wilson

Je me demande si cela devrait être exporté? Les processus enfants devraient également avoir ce nouveau chemin. Aussi: Lorsque j'ai configuré la distribution, cela ne m'a pas alerté que / usr / bin était antérieur à / usr / local / bin.
Steven Lu

@StevenLu, il est déjà exporté au moment où vous accédez à .bash_profile. Il ne ferait pas de mal de l'exporter explicitement à nouveau, mais pas nécessaire.
glenn jackman

Merci pour cela. A travaillé "Votre système est prêt à être infusé."
Vezu

Il semble que je reçois des entrées en double $PATH.
flow2k

10

Vous devez modifier / etc / chemins pour que / usr / local / bin soit répertorié avant / usr / bin . Vous aurez besoin de sudo votre éditeur pour ce faire.

L'une des façons d'ouvrir l'éditeur est

 sudo open -t /etc/paths

Mon CHEMIN a été configuré correctement dans mon .bash_profile, mais pas dans /etc/paths. Cela a fonctionné à merveille.
Nick Tomlin

7
N'UTILISEZ PAS cette méthode pour définir votre chemin - il y a un risque que les applications non terminales récupèrent les composants "brassés" et échouent. L'utilisation de "sudo" devrait également être un drapeau rouge à moins que vous ne compreniez vraiment ce que vous faites (en particulier avec un système de développement au niveau de l'utilisateur comme Mac Homebrew). La modification de votre .bash_profile et le redémarrage du terminal devraient être suffisants.
rholmes

@rholmes Ainsi, les modifications .bash_profileaffectent uniquement les shells utilisateur interactifs et non les autres applications?
flow2k

1
@ flow2k .bash_profile affectera les shells utilisateur interactifs. Toutes les variables exportées seront vues par les applications lancées à partir de la ligne de commande du shell (par exemple, le lancement d'une application Mac "normale" ou d'une commande de ligne de commande). Plus de détails peuvent être trouvés ici, mais ils font une distinction plus fine que ce que vous avez demandé: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos La réponse de glenn jackman est celle à utiliser .
rholmes

1
@ flow2k oui, vous l'avez dit correctement.
rholmes
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.