Comment modifier PATH pour Homebrew?


150

En essayant d'installer ruby ​​1.9.3, lisez que je dois d'abord installer homebrew. Ran Brew Doctor, et ça me donne un tas d'avertissements. Dont l'un est:

Attention: / usr / bin se produit avant / usr / local / bin Cela signifie que les programmes fournis par le système seront utilisés à la place de ceux fournis par Homebrew. Les outils suivants existent sur les deux chemins:

easy_install
easy_install-2.6

Pensez à modifier votre PATH afin que / usr / local / bin soit en avance sur / usr / bin dans votre PATH.

Comment fait-on ce qu'il demande ici?


1
@AristotlePagaltzis s » réponse sur SuperUser donne la meilleure solution à mon avis, ce qui permet à vos applications de système de continuer à utiliser /usr/bin, pendant que vous faire un lien symbolique de manière sélective les executables Homebrew que vous souhaitez utiliser au lieu des versions livrées d' Apple, tels que Git.

@mrdavidjcole: fengd n'a pas répondu à cette question?
fotinsky

Stack Overflow est un site pour les questions de programmation et de développement. Cette question semble hors sujet car elle ne concerne ni la programmation ni le développement. Consultez la rubrique Quels sujets puis-je poser ici dans le centre d'aide. Peut-être que Super User ou Apple Stack Exchange serait un meilleur endroit pour demander. Voir également Où puis-je publier des questions sur Dev Ops? .
jww

Réponses:


299

ouvrez votre fichier / etc / chemins, placez / usr / local / bin au-dessus de / usr / bin

$ sudo vi /etc/paths
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

et redémarrez le terminal , @mmel


9
Rechargez l'environnement ou démarrez un nouveau terminal après avoir effectué cette modification.
mmell

4
Je ne suis pas d'accord avec cela - devrait utiliser la réponse ci-dessous - la machine à remonter le temps, etc. ne prendra pas ce changement, je pense, en tant que dossier utilisateur extérieur.
Ian Warner

C'est aussi la meilleure solution que j'ai trouvée si votre problème est que RVM et Homebrew semblent tous deux être en concurrence pour le même bien immobilier dans votre fichier .bash_profile.
MCB

Je ne modifierais PAS / etc / chemins; à la place, utilisez les méthodes .profile / .bash_profile décrites ailleurs (par exemple, réponse de @avelis ci-dessous ou pour une approche plus paranoïaque, voir le premier commentaire faisant référence à la réponse d'AristotlePagaltzis sur SuperUser.
rholmes

1
Vous pouvez essayer d'utiliser l'éditeur de texte du nano terminal au lieu de via. J'ai trouvé cela plus facile à utiliser. "sudo nano / etc / chemins" au lieu de "sudo vi / etc / chemins".
tbradley22

78

Il existe de nombreuses façons de mettre à jour votre chemin. La réponse du 1er juin fonctionne très bien. Une autre méthode consiste à augmenter votre .bash_profilepour avoir:

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"

La ligne au-dessus des places /usr/local/binet /usr/local/sbindevant votre $PATH. Une fois que vous avez créé votre .bash_profileterminal ou démarré un nouveau terminal, vous pouvez vérifier votre chemin en le faisant écho .

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/Users/<your account>/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Une fois satisfait du résultat, $ brew doctorrecommencer ne devrait plus produire votre erreur.

Cet article de blog m'a aidé à résoudre les problèmes que j'ai rencontrés. http://moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/


2
@JanuszChudzynski Pour la solution de Jun1st, il se peut que vous deviez redémarrer la session de ligne de commande pour voir le changement.
avelis

Versions récentes de homebrew day: envisagez de définir votre PATH pour que / usr / local / bin apparaisse avant / usr / bin. Voici une seule ligne:echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile . C'est essentiellement ce que suggère cette réponse.
nacho4d

Cependant, je doute que ce soit la bonne manière. Voir ci-dessous: Avant modification: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binmodification: echo export PATH="/usr/local/bin:$PATH >> ~/.bash_profileAprès modification: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin Cela signifie que si une commande n'est pas trouvée dans / usr / local / bin, elle peut être recherchée deux fois avant d'être trouvée dans un autre chemin. Je pense qu'il vaut mieux changer le /etc/pathsfichier
nacho4d

$ echo 'export PATH = "/ usr / local / bin: $ PATH"' >> ~ / .bash_profile me donne $ PATH "'>> ~ / .bash_profile -bash: $: commande non trouvée
Mamba

@rpeg Je suis sûr que si vous recherchez des tutoriels sur le Web, il existe une abondance de ressources, mais en voici une que je connais. linux.com/learn/tutorials/272346-bash-101-working-at-the-cli
avelis

20

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


3
Si vous utilisez zsh, utilisez cette commande echo 'export PATH = "/ usr / local / sbin: $ PATH"' >> ~ / .zshrc
kareem

1

ouvrir le profil bash dans le texte

ouvrir -e .bash_profile

Modifiez le fichier ou collez-le devant PATH export PATH = / usr / bin: / usr / sbin: / bin: / sbin: / usr / local / bin: / usr / local / sbin: ~ / bin

enregistrer et fermer le fichier

* Pour ouvrir .bash_profile, ouvrez directement textEdit> fichier> récent


0

Pour éviter toute duplication inutile, j'ai ajouté ce qui suit à mon ~ / .bash_profile

case ":$PATH:" in
  *:/usr/local/bin:*) ;;     # do nothing if $PATH already contains /usr/local/bin
  *) PATH=/usr/local/bin:$PATH ;;  # in every other case, add it to the front
esac

Crédit: https://superuser.com/a/580611

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.