Установите переменные среды в Mac OS X Lion

Когда кто-то говорит "отредактируйте файл .plist" или "ваш .profile" или ".bash_profile" и т.д., это меня просто смущает. Я не знаю, где эти файлы, как их создавать, если я должен это делать и т.д., А также почему, похоже, так много разных (почему? Они делают разные вещи?)

Так может кто-то, может быть, очень терпеливо объяснить предыдущему пользователю Windows (желая отчаянно лучше познакомиться с приятным, если вначале несколько запутанным миром OS X), как это сделать шаг за шагом?

Мне нужны переменные, которые должны быть установлены как для приложений GUI, так и для приложений командной строки, и в настоящий момент для ant script, которым нужны переменные, но, скорее всего, будут другие потребности.

Обратите внимание, что у меня тоже есть Лев, так как многие ответы, которые вы получаете, выглядят устаревшими для Лев...

Также обратите внимание, что у меня практически нет опыта использования терминала. Я хочу учиться, но, пожалуйста, объясните для новичков...

Ответ 1

Во-первых, одна вещь, чтобы узнать о OS X, заключается в том, что она построена на Unix. Здесь появляется файл .bash_profile. Когда вы запускаете приложение Terminal в OS X, по умолчанию вы получаете оболочку bash. Оболочка bash поставляется из Unix и при загрузке запускает файл .bash_profile script. Вы можете изменить этот script, чтобы пользователь мог изменить ваши настройки. Этот файл находится по адресу:

~/.bash_profile

Обновление для Mavericks

OS X Mavericks не использует environment.plist - по крайней мере, не для оконных приложений OS X. Вы можете использовать конфигурацию запуска для оконных приложений. Файл .bash_profile по-прежнему поддерживается, поскольку он является частью оболочки bash, используемой в терминале.

Только лев и горный лев

Оконные приложения OS X получают переменные среды из файла environment.plist. Вероятно, это означает, что вы используете файл ".plist". Этот файл находится по адресу:

~/.MacOSX/environment.plist

Если вы внесете изменения в файл environment.plist, тогда приложения Windows OS X, включая приложение Terminal, будут иметь эти переменные окружения. Любая переменная среды, заданная в вашем .bash_profile, затронет только ваши оболочки bash.

Обычно я устанавливаю только переменные в файле .bash_profile и не изменяю файл .plist(или файл запуска на Mavericks). Большинство оконных приложений OS X не нуждаются в какой-либо настраиваемой среде. Только когда приложение действительно нуждается в определенной переменной среды, я должен изменить файл environment.plist(или файл запуска на Mavericks).

Похоже, что вы хотите изменить файл environment.plist, а не файл .bash_profile.

Последнее, если вы ищете эти файлы, я думаю, вы их не найдете. Если я правильно помню, они не были на моей начальной установке Льва.

Изменить: Вот несколько инструкций по созданию файла plist.

  • Открыть Xcode
  • Выберите Файл → Новый → Новый файл...
  • В Mac OS X выберите "Ресурсы"
  • Выберите файл plist
  • Следуйте остальным запросам

Чтобы отредактировать файл, вы можете нажать "Control", чтобы получить меню и выбрать "Добавить строку". Затем вы можете добавить пару ключевых значений. Для переменных среды ключ - это имя переменной среды, а значение является фактическим значением для этой переменной среды.

Как только файл plist будет создан, вы можете открыть его с помощью Xcode, чтобы изменить его в любое время.

Ответ 2

Ваш .profile или .bash_profile - это просто файлы, которые присутствуют в вашей "домашней" папке. Если вы откроете окно Finder и нажмете имя своей учетной записи на панели "Избранное", вы их не увидите. Если вы откроете окно терминала и ls для просмотра списка файлов, вы все равно их не увидите. Однако вы можете найти их, используя ls -a в терминале. Или, если вы откроете свой любимый текстовый редактор (скажем, TextEdit, поскольку он поставляется с OS X) и выполните File-> Открыть, а затем нажмите Command + Shift + . и щелкните по имени вашей учетной записи (домашняя папка), вы увидим их тоже. Если вы их не видите, вы можете создать их в своем любимом текстовом редакторе.

Теперь, добавление переменных окружения относительно просто и замечательно похоже на окна концептуально. В вашем .profile просто добавьте, по одному в строке, имя переменной и ее значение следующим образом:

export JAVA_HOME=/Library/Java/Home
export JRE_HOME=/Library/Java/Home

и т.п.

Если вы изменяете переменную "PATH", обязательно включите системный PATH по умолчанию, который уже был установлен для вас:

export PATH=$PATH:/path/to/my/stuff

Теперь вот странная часть: вы можете либо открыть новое окно терминала, чтобы новые переменные вступили в силу, либо вам нужно будет набрать .profile или .bash_profile чтобы перезагрузить файл и применить его к текущей среде терминала.

Вы можете проверить, что ваши изменения вступили в силу, используя команду "set" в вашем терминале. Просто введите set (или set | more если вы предпочитаете разбитый на страницы список) и убедитесь, что вы добавили файл.

Что касается добавления переменных среды в приложения с графическим интерфейсом, это обычно не требуется, и я хотел бы услышать больше о том, что вы конкретно пытаетесь сделать, чтобы лучше дать вам ответ на этот вопрос.

Ответ 3

Здесь немного больше информации о переменной PATH в Lion OS 10.7.x:

Если вам нужно установить PATH глобально, PATH будет создан системой в следующем порядке:

  • Разбор содержимого файла /private/etc/paths, один путь в строке
  • Разбор содержимого папки /private/etc/paths.d. Каждый файл в этой папке может содержать несколько путей, по одному пути в каждой строке. Порядок загрузки определяется сначала именем файла, а затем порядком строк в файле.
  • A setenv PATH в /private/etc/launchd.conf, который добавит этот путь к пути, уже построенному в # 1 и # 2 (вы не должны использовать $PATH для ссылки на переменную PATH, которая была построена до сих пор). Но установка PATH здесь совершенно не нужна, учитывая две другие опции, хотя это место, где для всех пользователей могут быть установлены другие глобальные переменные среды.

Эти пути и переменные наследуются всеми пользователями и приложениями, поэтому они действительно глобальны - выходят из системы и не будут reset эти пути - они созданы для системы и создаются до того, как любой пользователь будет указан возможность входа в систему, поэтому для внесения изменений в них требуется перезапуск системы для вступления в силу.

BTW, чистая установка OS 10.7.x Lion не имеет environment.plist, который я могу найти, поэтому он может работать, но также может быть устаревшим.

Ответ 4

echo $PATH

он печатает текущее значение пути

Тогда do vim ~/.bash_profile и напишем

export PATH=$PATH:/new/path/to/be/added

здесь вы добавляете старый путь, поэтому сохраняет старый путь и добавляет новый путь к нему

то do

source ~/.bash_profile

это выполнит его и добавит путь

затем снова проверьте с помощью

echo $PATH

Ответ 5

К сожалению, ни один из этих ответов не решил конкретную проблему, которую я имел.

Здесь простое решение без необходимости возиться с bash. В моем случае он работал gradle (для Android Studio).

Btw, Эти шаги относятся к OSX (Mountain Lion 10.8.5)

  • Откройте терминал.
  • Выполните следующую команду:

    sudo nano /etc/paths (или sudo vim /etc/paths для vim)

    nano

  • Перейдите в конец файла и введите путь, который хотите добавить.
  • Хит-контроль-х для выхода.
  • Введите "Y", чтобы сохранить измененный буфер.
  • Откройте новое окно терминала и введите:

    echo $PATH

Вы должны увидеть новый путь, добавленный в конец PATH

Я получил эти данные из этого сообщения:

http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q

Я надеюсь, что это может помочь кому-то еще

Ответ 6

Упрощенное объяснение

Этот пост/вопрос старый, поэтому я отвечу на упрощенную версию для пользователей OS X Lion. По умолчанию OSX Lion не имеет ни одного из следующих файлов:

  • ~/.bashrc
  • ~/.bash_profile
  • ~/.profile

В лучшем случае, если вы сделали что-либо в терминале, вы можете увидеть ~/.bash_history

Что это значит

Вы должны создать файл, чтобы установить свои команды по умолчанию bash (обычно в ~/.bashrc). Для этого используйте любой редактор, хотя это проще сделать в терминале:

  • % > emacs.profile
  • [from w/in emacs type:] source ~/.bashrc
  • [from w/in emacs type:] Ctrl + x Ctrl + s (для сохранения файла)
  • [from w/in emacs type:] Ctrl + x Ctrl + c (для закрытия emacs)
  • % > emacs.bashrc
  • [from w/in emacs type/вставить все ваши команды bash, сохранить и выйти]

В следующий раз, когда вы выйдете и перезагрузите терминал, он должен загрузить все ваши настройки bash. Для хорошей оценки обычно полезно отделить свои команды от полезных имен файлов. Например, из ~/.bashrc вы должны иметь source ~/.bash_aliases и поместить все свои команды псевдонимов в ~/.bash_aliases.

Ответ 7

Что сработало для меня, так это создать .launchd.conf с необходимыми переменными:

setenv FOO barbaz

Этот файл читается startd при входе в систему. Вы можете добавить переменную "на лету" к запущенному запуску с помощью:

launchctl setenv FOO barbaz`

Фактически, .launchd.cond просто содержит команды launchctl.

Переменные, установленные таким образом, как представляется, присутствуют в графических приложениях правильно.

Если вы пытаетесь установить переменные LANG или LC_ таким образом, и вы используете iTerm2, убедитесь, что вы отключили параметр "Установить языковые переменные автоматически" на вкладке "Терминал" профиля, который вы с помощью. Это, кажется, переопределяет переменные среды запуска, и в моем случае была установлена ​​неисправная проблема LC_CTYPE, вызывающая проблемы на удаленных серверах (которые получили переданную переменную).

(Тем не менее, среда environment.plist работает на моем Льве. Вы можете использовать панель предпочтений RCenvironment, чтобы сохранить файл вместо этого вручную редактируя его или требуется Xcode. По-видимому, он работает на Lion, хотя последнее обновление относится к эпохе Snow Leopard. Делает это мой личный предпочтительный метод.)

Ответ 8

Установите переменную среды PATH в Mac OS

Откройте программу терминала (это по умолчанию используется в папке Applications/Utilites). Выполните следующую команду

touch ~/.bash_profile; open ~/.bash_profile

Это откроет файл в текстовом редакторе по умолчанию.

Для ANDROID SDK в качестве примера:

Вам нужно добавить путь к каталогу инструментов и инструментов платформы Android SDK. В моем примере я буду использовать "/Development/android-sdk-macosx" в качестве каталога, в который установлен SDK. Добавьте следующую строку:

export PATH=${PATH}:/Development/android-sdk-macosx/platform-tools:/Development/android-sdk-macosx/tools

Сохраните файл и закройте текстовый редактор. Выполните свой .bash_profile, чтобы обновить PATH.

source ~/.bash_profile

Теперь каждый раз, когда вы открываете программу терминалов, в которой PATH будет включать Android SDK.

Ответ 9

Добавление переменных пути к OS X Lion

Это было довольно прямолинейно и работало для меня, в терминале:

$echo "export PATH=$PATH:/path/to/whatever" >> .bash_profile #replace "/path/to/whatever" with the location of what you want to add to your bash profile, i.e: $ echo "export PATH=$PATH:/usr/local/Cellar/nginx/1.0.12/sbin" >> .bash_profile 
$. .bash_profile #restart your bash shell

Аналогичный ответ был здесь: http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516

Ответ 10

Открыть терминал:

vi ~/.bash_profile

Применить изменения к системе (нет необходимости перезагружать компьютер):

source ~/.bash_profile

(Также работаем с macOS Sierra 10.12.1)

Ответ 11

У меня возникла проблема с Eclipse (начата как GUI, а не с script) на Maverics, что он не принял пользовательский PATH. Я пробовал все упомянутые выше методы безрезультатно. Наконец, я нашел простейший рабочий ответ, основанный на подсказках here:

  • Перейдите в папку /Applications/eclipse/Eclipse.app/Contents

  • Измените файл Info.plist текстовым редактором (или XCode), добавьте словарь LSEnvironment для переменной окружения с полным путем. Обратите внимание, что он включает также /usr/bin и т.д.:

    <dict>
      <key>LSEnvironment</key>
      <dict>
            <key>PATH</key>
            <string>/usr/bin:/bin:/usr/sbin:/sbin:/dev/android-ndk-r9b</string>
      </dict>
      <key>CFBundleDisplayName</key>
      <string>Eclipse</string>
      ...
    
  • Обновить параметры для приложения с помощью

    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.fra‌​mework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
    
  • Перезапустить Eclipse

Ответ 12

Позвольте мне проиллюстрировать вас из моего личного примера в очень излишней форме.

  1. Сначала после установки JDK убедитесь, что он установлен. enter image description here
  2. Иногда macOS или Linux автоматически устанавливают переменную окружения для вас, в отличие от Windows. Но это не всегда так. Так что давай проверим это. enter image description here Строка сразу после echo $ JAVA_HOME будет пустой, если переменная окружения не установлена. Он должен быть пустым в вашем случае.

  3. Теперь нам нужно проверить, есть ли у нас файл bash_profile. enter image description here Вы видели, что в моем случае у нас уже есть bash_profile. Если нет, мы должны создать файл bash_profile.

  4. Создайте файл bash_profile. enter image description here

  5. Проверьте еще раз, чтобы убедиться, что файл bash_profile находится там. enter image description here

  6. Теперь давайте откроем файл bash_profile. macOS открывает его, используя программу TextEdit по умолчанию. enter image description here

  7. Это файл, в котором хранятся переменные среды. Если вы открыли новый файл bash_profile, он должен быть пустым. В моем случае он уже был настроен для языка программирования Python и распространения Anaconda. Теперь мне нужно добавить переменную окружения для Java, которая просто добавляет первую строку. ВЫ ДОЛЖНЫ НАПРАВИТЬ ВЕРБАТИМ. ТОЛЬКО первая строка. Сохраните и закройте TextEdit. Затем закройте терминал. enter image description here

  8. Откройте терминал снова. Давайте проверим, установлена ли переменная окружения. enter image description here

Ответ 13

Я взял идиотский маршрут. Добавлено их до конца /etc/profile

for environment in `find /etc/environments.d -type f`
do
     . $environment
done

создана папка /etc/environment создайте в нем файл "oracle" или "whatever" и добавьте материал, который мне нужно установить глобально.

/etc $cat/etc/environments.d/Oracle

export PATH=$PATH:/Library/Oracle/instantclient_11_2
export DYLD_LIBRARY_PATH=/Library/Oracle/instantclient_11_2
export SQLPATH=/Library/Oracle/instantclient_11_2
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export TNS_ADMIN=/Library/Oracle/instantclient_11_2/network/admin

Ответ 14

Более подробная информация, которая может быть полезной для кого-то:

Из-за моих собственных исследований я теперь знаю, как установить переменные среды в 7 из 8 разных способов. Я пытался получить envar через приложение, которое я разрабатываю под Xcode. Я установил envars "tracer", используя эти разные методы, чтобы сказать, какие из них попадают в сферу моего приложения. Из нижеследующего вы можете видеть, что редактирование "схемы" в Xcode для добавления аргументов работает, как и "putenv". Что не установлено в этой области: ~/.MACOS/environment.plist, специфичный для приложения plist,.profile и добавление фазы сборки для запуска пользовательского script (я нашел другой способ в Xcode [по крайней мере] установить, но забыл, что я назвал трассировщиком, и не могу найти его сейчас, может быть, это на другой машине....)

GPU_DUMP_DEVICE_KERNEL - 3

GPU_DUMP_TRK_ENVPLIST (null)

GPU_DUMP_TRK_APPPLIST (null)

GPU_DUMP_TRK_DOTPROFILE (null)

GPU_DUMP_TRK_RUNSCRIPT (null)

GPU_DUMP_TRK_SCHARGS - 1

GPU_DUMP_TRK_PUTENV - 1

... с другой стороны, если я заеду в Терминал и скажу "set", кажется, что единственное, что он получает, это тот, что из .profile(я бы подумал, что он заберет environment.plist, и Я уверен, что как только я увижу второй трейсер-энвар в Терминале, так что с того времени что-то сменилось. Длинный день....)

Ответ 15

Шаг 1: откройте ~/.bash_profile

Теперь откроется текстовый редактор:

Шаг 2: имя переменной должно быть прописным. в этом примере переменная NODE_ENV

Шаг 3: export NODE_ENV=development

Сохраните его и закройте.

Перезагрузите вашу систему.

Готово.

Чтобы проверить переменную env: откройте терминал и наберите

echo $NODE_ENV