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.
Постоянно экспортируйте пути следующим образом:
- Создавать
.zshenv
файл:
touch ~/.zshenv
- Затем откройте его с помощью следующей команды:
open -a TextEdit.app ~/.zshenv
- Введите экспорт, который вы хотите сделать в этом формате:
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
, Вот еще одна тема обмена стека на эту тему:
Это дает вам полную копию и вставку, которую вы можете настроить, чтобы установить свою конкретную переменную.
В Big Sur в MacOS я думаю, что .bashrc теперь .zshrc, а .bash_profile теперь .zprofile.
Мне пришлось бежать
source ~/.bashrc
чтобы мои изменения отображались после изменения ~/.bashrc, я использую Big Sur.
- Перейти в домашний каталог (если нет)
cd ~
- Откройте файл .bash_profile
vi .bash_profile
или создать, если нетtouch ~/.bash_profile
- Редактировать файл
export PATH=$PATH:add-your-path-here
и сохраните его и перезапустите терминал, чтобы увидеть эффекты. Проверятьecho $PATH
чтобы увидеть, добавлен ли путь или нет, или проверьте версию установленного вами пакета.