Mac OS X 10.9 - установка постоянных переменных среды
Как установить постоянную переменную среды (т.е. не нужно экспортировать каждый раз при запуске нового сеанса терминала) в Mac OS X 10.9? Я нашел несколько ответов об изменении моих .bash_profile
и .profile
, однако ни один из этих параметров не работает как постоянные решения - только временные. Переменная, которую я пытаюсь установить, - MULE_HOME
. У меня есть следующая строка в моем профиле bash:
export MULE_HOME=$(/opt/mule-standalone-3.4.0)
Однако, когда я запускаю терминал, я получаю следующую строку (не уверен, что это нормальное поведение?):
-bash: /opt/mule-standalone-3.4.0: is a directory
И запуск простой команды env
возвращает следующее:
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
Чтобы обойти это, мне приходится набирать export MULE_HOME=/opt/mule-standalone-3.4.0
каждый раз, когда я запускаю новый сеанс терминала, который, хотя и не напряжен, немного неудобен. Что я делаю неправильно здесь, что вызывает изменение переменной только временно? Спасибо заранее.
Ответы
Ответ 1
Отбросьте бит $(...)
, который попытается выполнить команду в скобках и установите $MULE_HOME
на все, что он производит. В вашем случае /opt/mule-standalone-3.4.0
не является исполняемым, следовательно, ошибка, которую вы получаете.
export MULE_HOME=/opt/mule-standalone-3.4.0
и используйте ~/.bashrc
not ~/.bash_profile
.
EDIT: похоже, вы должны установить переменные среды в ~/.bash_profile
script, а не ~/.bashrc
script.
Ответ 2
Просто это было очень легко и быстро. Сначала создайте ~/.bash_profile из терминала:
touch ~/.bash_profile
затем
open -a TextEdit.app ~/.bash_profile
добавить
export TOMCAT_HOME=/Library/Tomcat/Home
Сохранить документ в TextEdit, и все готово.
Ответ 3
В качестве альтернативы вы также можете добавить следующую команду к .bash_profile
, если вы хотите, чтобы ваши переменные среды отображались графическими приложениями. В Mac OS X графические приложения не наследуют вашу конфигурацию .bash_profile:
launchctl setenv MYPATH myvar
Ответ 4
Вы можете поместить свой экспортный оператор в ~/.bashrc
Ответ 5
Кажется, что Apple постоянно меняет, как это сделать. И это все о контексте. Один способ не обязательно работает, когда другой. Мне нужно, чтобы он работал в IDE, и ни один из упомянутых здесь файлов bash (стиль Linux) этого не делал. Нынешний способ, которым приложения GUI постоянно уважают это, является СУПЕР извилистым по сравнению с Windows и Linux!
Короче говоря, вы должны написать огромную кучу уродливого XML файла в plist файл для запуска некоторого bash. Это идет в ваш каталог "агенты запуска", то есть ~/Library/LaunchAgents/my.startup.plist
. Вот еще одна тема обмена стека на эту тему:
https://apple.stackexchange.com/info/106355/setting-the-system-wide-path-environment-variable-in-mavericks
Это дает вам полную копию и вставку, которую вы можете настроить, чтобы установить свою конкретную переменную.