104 votes

Comment dois-je définir la variable PATH sur mon Mac pour que les outils installés par Hombrew soient trouvés ?

J'essaie de mettre en place Homebrew sur un nouveau Mac (sur les Macs précédents, j'installais les paquets à partir des sources).

Le premier paquet que j'ai essayé d'installer était Git :

$ brew install git

L'installation s'est bien passée, mais which git montre toujours celui de /usr/bin/git qui est venu avec Lion (je crois ?). Et pas celui de /usr/local/bin/git qui vient d'être installé.

$ echo $PATH
/Users/meltemi/.rvm/gems/ruby-1.9.2-p290@rails31/bin:/Users/meltemi/.rvm/gems/ruby-1.9.2-p290@global/bin:/Users/meltemi/.rvm/rubies/ruby-1.9.2-p290/bin:/Users/michael/.rvm/bin:/usr/local/mysql/bin:/opt/subversion/bin:/Developer/Additions/checker/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Comme vous pouvez le constater /usr/bin par défaut, avant /usr/local/bin dans le $PATH

Donc, je suis confus ! Je pensais que le but de HomeBrew (et dont les créateurs semblent se vanter), c'est qu'il n'est pas nécessaire de s'occuper de l'interface de l'ordinateur. $PATH variable ! ?!

Alors, qu'est-ce que j'ai fait de mal ?

4voto

Cheezmeister Points 707

Il y a toute une série de bonnes réponses ici. Voici la mienne :

echo >> ~/.bashrc alias my="PATH=/usr/local/bin:$PATH"
. ~/.bashrc
my git --version # Brew's fancy git
git --version # Apple's old crusty git

Cela vous évite de devoir créer un alias distinct pour chaque programme et, en prime, cela laisse les installations par défaut accessibles au cas où vous en auriez besoin.

Cela fonctionne de la même manière si vous utilisez ZSH ; il suffit de remplacer bashrc pour zshrc . Vous pouvez changer my pour _ ou même @ pour éviter la saisie.

3voto

lava Points 163

Plutôt que de jouer avec le PATH (ce qui dans mon histoire revient me brûler des mois plus tard), j'ai ajouté un alias pour git dans mon répertoire d'alias personnalisés de zsh (~/.zshrc/custom/git_alias.zsh).

alias git='/usr/local/bin/git'

1voto

Jamon Holmgren Points 7176

Je préfère limiter les changements aux variables d'environnement comme $PATH aux utilisateurs qui veulent réellement le changement. Ainsi, j'ajoute simplement ce qui suit à ~/.bashrc :

export PATH="$(brew --prefix)/bin:$PATH"

0voto

vincedgy Points 101

Vous pouvez lancer la commande suivante dans un terminal, elle ajoutera le répertoire home de brew + le /bin dans le PATH de votre fichier d'init Shell "rc" (bash, zsh, csh).

echo "export PATH="'$PATH:$(brew --prefix)/bin' >> ~/.$(basename $SHELL)rc

Profitez-en !

0voto

F1Linux Points 263

Enquête :

J'ai reçu l'erreur " commande non trouvée "lors de l'exécution d'une commande Homebrew. Cependant, j'ai vérifié que j'avais /usr/local/bin dans mon chemin comme les autres réponses dans ce fil et en effet il était là. ? !?!?!?

Un site ls -al /usr/local/bin vérifié que tout mon matériel Homebrew vivait dans ce chemin. Puis je me suis demandé si la commande qui échouait était mtr Vous vivez ici aussi ?

ls -al /usr/local/bin|grep mtr

Aucun résultat. En effet, le paquet mtr vomir l'erreur D D D D D D se trouvent dans le chemin par défaut. Cela explique certainement le " commande non trouvée " erreur.

Solution :

Bien que tout le monde et la documentation Homebrew vous disent d'ajouter /usr/local/bin à votre chemin, il y a une autre chose que vous devez ajouter à votre chemin :

/usr/local/sbin

mtr et certains autres paquets Homebrew nécessitent une exécution par l'intermédiaire de sudo et vivront dans s bin par opposition à bin.

En ajoutant ce chemin à :

/etc/paths

l'ajoutera de manière persistante à vos chemins et maintenant, lorsque vous exécutez l'une de ces commandes, elle fonctionnera comme prévu

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X