Подтвердить что ты не робот

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 каждый раз, когда я запускаю новый сеанс терминала, который, хотя и не напряжен, немного неудобен. Что я делаю неправильно здесь, что вызывает изменение переменной только временно? Спасибо заранее.

4b9b3361

Ответ 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

Это дает вам полную копию и вставку, которую вы можете настроить, чтобы установить свою конкретную переменную.