Comment définir une variable d’environnement permanente (c’est-à-dire une variable qui n’a pas besoin d’être exportée à chaque démarrage d’une nouvelle session Terminal) sous Mac OS X 10.9? J'ai trouvé un certain nombre de réponses sur la modification de mon .bash_profile
et .profile
, cependant, aucune de ces options ne semble fonctionner comme une solution permanente - seulement temporaire. La variable que j'essaie de définir est MULE_HOME
. J'ai la ligne suivante dans mon profil bash:
export MULE_HOME=$(/opt/mule-standalone-3.4.0)
Cependant, lorsque je démarre Terminal, la ligne suivante est affichée (vous ne savez pas s'il s'agit d'un comportement normal?):
-bash: /opt/mule-standalone-3.4.0: is a directory
Et l'exécution d'une simple commande env
renvoie les éléments suivants:
TERM_PROGRAM=Apple_Terminal
Shell=/bin/bash
TERM=xterm-256color
TMPDIR=/var/folders/fc/68bqp4jj411gynj5qvwhq6z1shs1fy/T/
Apple_PubSub_Socket_Render=/tmp/launch-xKtkql/Render
TERM_PROGRAM_VERSION=326
TERM_SESSION_ID=E97BFE4B-AF85-4933-B252-0883CC085349
USER=dan
SSH_AUTH_SOCK=/tmp/launch-rEmTWW/Listeners
__CF_USER_TEXT_ENCODING=0x730C85DE:0:0
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
__CHECKFIX1436934=1
PWD=/Users/dan
Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
LANG=en_GB.UTF-8
MULE_HOME=
SHLVL=1
HOME=/Users/dan
LOGNAME=danwiseman
_=/usr/bin/env
Pour résoudre ce problème, je dois actuellement taper export MULE_HOME=/opt/mule-standalone-3.4.0
chaque fois que je lance une nouvelle session de terminal qui, bien que peu fatigante, est un peu gênant. Qu'est-ce que je fais mal ici pour que la variable ne soit définie que temporairement? Merci d'avance.
Supprimez le bit $(...)
, qui tentera d'exécuter la commande entre crochets et définira $MULE_HOME
à tout ce qu'il produit. Dans ton cas /opt/mule-standalone-3.4.0
n'est pas un exécutable, d'où l'erreur que vous obtenez.
export MULE_HOME=/opt/mule-standalone-3.4.0
et utilise ~/.bashrc
ne pas ~/.bash_profile
.
EDIT: Il semble que vous devriez définir des variables d’environnement dans votre ~/.bash_profile
script, et pas ~/.bashrc
script.
Vient de faire cela vraiment facile et rapide. Commencez par créer un ~/.bash_profile depuis le terminal:
touch ~/.bash_profile
puis
open -a TextEdit.app ~/.bash_profile
ajouter
export Tomcat_HOME=/Library/Tomcat/Home
Enregistrez le document dans TextEdit et vous avez terminé.
Vous pouvez également ajouter la commande suivante à votre .bash_profile
si vous souhaitez que vos variables d’environnement soient visibles par les applications graphiques. Sous Mac OS X, les applications graphiques n'héritent pas de votre configuration .bash_profile:
launchctl setenv MYPATH myvar
Vous pouvez mettre votre déclaration d'exportation dans ~/.bashrc
Il semble que Apple ne cesse de changer la façon de procéder. Et tout est une question de contexte. Une manière ne fonctionne pas nécessairement quand une autre le fait. J'avais besoin que cela fonctionne dans un IDE, et aucun des deux Les fichiers mentionnés ici (style Linux) ont fait cela. Le moyen actuel pour les applications GUI de respecter cela de façon permanente est SUPER alambiqué par rapport à Windows et Linux!
En un mot, vous avez écrit une énorme pile de XML déplaisant dans un fichier plist pour exécuter quelques bash. Cela va dans votre répertoire "agents de lancement", c'est-à-dire ~/Library/LaunchAgents/my.startup.plist
. Voici un autre thread Stack Exchange sur le sujet:
Cela vous donne un copier/coller complet que vous pouvez modifier pour définir votre variable spécifique.