144 votes

Comment définir $PATH dans OS X 10.6 Snow Leopard ?

I type echo $PATH sur la ligne de commande et obtenir

/opt/local/bin:/opt/local/sbin:/Users/andrew/bin:/usr/local/bin:/usr/local/mysql/bin:/usr/local/pear/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin

Je me demande où cela se passe puisque ma .bash_login est vide.

Je suis particulièrement préoccupé par le fait qu'après avoir installé MacPorts, il a installé un tas de cochonneries en /opt . Je ne pense pas que ce répertoire existe même dans une installation normale de Mac OS X.

Mise à jour : Merci à jtimberman pour avoir corrigé mon echo $PATH déclaration

163voto

Rejeev Divakaran Points 1162

Lorsque bash démarre, il lit les fichiers suivants à chaque fois que vous vous connectez. Pour les besoins d'OS X, cela signifie que chaque fois que vous ouvrez un nouveau fichier Terminal fenêtre.

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)

Lorsque vous démarrez un nouveau Shell en tapant bash sur la ligne de commande, on lit .bashrc

OS X utilise également ~/.MacOSX/environment.plist pour définir plus de variables d'environnement, y compris les chemins si nécessaire.

Enfin, /etc/paths y /etc/paths.d sont lus par le Shell également.


/opt/local/bin etc. sont ajoutés dans ~/.tcshrc par MacPorts. N'oubliez pas non plus de consulter le site ~/.cshrc .

51voto

Jetez un coup d'œil au fichier /etc/paths qui est utilisé par /usr/libexec/path_helper qui est utilisé par /etc/profile .

Pour les MacPorts, utilisez sudo /etc/paths/opt/local/bin et rouvrir la fenêtre du terminal.

26voto

leanne Points 511

Sérieusement, Leopard nous a donné une nouvelle façon d'ajouter un chemin. Créez simplement un fichier contenant la partie du chemin que vous voulez ajouter, et mettez-le dans /etc/paths.d.

Voici un exemple rapide de la façon de procéder en une seule étape :

echo "/some/path/to/add" >> /etc/paths.d/somefilename

Sinon, vous pouvez simplement aller dans /etc/paths.d et y mettre le fichier directement. D'une manière ou d'une autre, toutes les parties de chemin dans les fichiers de ce répertoire seront ajoutées au chemin par défaut.

Cela fonctionne aussi pour Manpath.

Voici un lien pour plus de détails :

ars technica : comment ajouter quelque chose à PATH dans snow leopard ?

Deuxièmement, MacPorts place tout dans le répertoire opt précisément parce qu'il n'est pas utilisé par le matériel d'Apple. De cette façon, il n'y a pas de conflit. Leur guide (excellemment écrit, BTW) explique pourquoi il utilise opt et comment changer ce défaut si vous le souhaitez.

Guide MacPorts

4voto

Loïc Wolff Points 14389

Pour afficher votre chemin, echo $PATH.

echo $PATH

Pour définir votre chemin, modifiez ~/.bash_profile pas ~/.bash_login .

4voto

Keith Bentrup Points 405

Il y a aussi le chemin tel que déterminé par ssh .

Comparez echo $PATH a ssh localhost 'echo $PATH' . Comme ssh ne lit pas /etc/profile, /usr/libexec/path_helper ne s'exécute pas et donc /etc/paths est ignoré. Essayez maintenant ssh localhost 'source /etc/profile; echo $PATH' . Les chemins devraient être plus proches. Les différences restantes seront probablement dues à la modification des chemins dans votre .bash_profile (qui est également ignoré par ssh) et .bashrc (qui est lu par ssh).

Si vous voulez que le chemin de ssh soit similaire à celui de votre terminal normal, vous pouvez ajouter source /etc/profile à votre .bashrc.

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