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

9 ответов

Решение

Брось $(...) бит, который будет пытаться выполнить команду в скобках и установить $MULE_HOME к тому, что он производит. В твоем случае /opt/mule-standalone-3.4.0 не является исполняемым файлом, поэтому вы получаете ошибку.

export MULE_HOME=/opt/mule-standalone-3.4.0

и использовать ~/.bashrc не ~/.bash_profile ,

РЕДАКТИРОВАТЬ: кажется мнение, что вы должны установить переменные среды в вашем ~/.bash_profile сценарий, а не ~/.bashrc скрипт.

Просто сделал это действительно легко и быстро. Сначала создайте ~/.bash_profile из терминала:

touch ~/.bash_profile

затем

open -a TextEdit.app ~/.bash_profile

добавлять

export TOMCAT_HOME=/Library/Tomcat/Home

Сохраните документ в TextEdit, и все готово.

MacOS 10.15 Каталина и новее

Если кто-то на MacOS 10.15 (Catalina) и выше придет сюда, вам нужно использовать файл вместо .bash_profile. Это связано с тем, что по умолчанию, начиная с Catalina, терминал использует zhs вместо bash.

Постоянно экспортируйте пути следующим образом:

  1. Создавать .zshenvфайл:

touch ~/.zshenv

  1. Затем откройте его с помощью следующей команды:

open -a TextEdit.app ~/.zshenv

  1. Введите экспорт, который вы хотите сделать в этом формате:

export NAME=pathбывший: export PICO_SDK_PATH=/Users/[redacted]/Developer/pico-sdk

Кроме того, вы также можете добавить следующую команду к вашему .bash_profile если вы хотите, чтобы переменные среды были видны графическим приложениям. В Mac OS X графические приложения не наследуют вашу конфигурацию.bash_profile:

launchctl setenv MYPATH myvar

Кажется, что Apple постоянно меняет, как это сделать. И все дело в контексте. Один способ не обязательно работает, когда другой. Мне нужно, чтобы он работал в IDE, и ни один из упомянутых здесь файлов bash (стиль Linux) этого не делал. Нынешний способ для приложений GUI постоянно уважать это - СУПЕР извилист по сравнению с Windows и Linux!

Короче говоря, вы должны написать огромную кучу уродливого XML-файла в plist-файле для запуска некоторого bash. Это идет в ваш каталог "агенты запуска", т.е. ~/Library/LaunchAgents/my.startup.plist, Вот еще одна тема обмена стека на эту тему:

https://apple.stackexchange.com/questions/106355/setting-the-system-wide-path-environment-variable-in-mavericks

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

Вы можете поместить свое экспортное заявление в ~/.bashrc

В Big Sur в MacOS я думаю, что .bashrc теперь .zshrc, а .bash_profile теперь .zprofile.

Мне пришлось бежать source ~/.bashrc чтобы мои изменения отображались после изменения ~/.bashrc, я использую Big Sur.

  1. Перейти в домашний каталог (если нет) cd ~
  2. Откройте файл .bash_profile vi .bash_profile или создать, если нет touch ~/.bash_profile
  3. Редактировать файл export PATH=$PATH:add-your-path-hereи сохраните его и перезапустите терминал, чтобы увидеть эффекты. Проверять echo $PATH чтобы увидеть, добавлен ли путь или нет, или проверьте версию установленного вами пакета.
Другие вопросы по тегам