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


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

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

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

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

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

15 501

15 ответов:

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

~/.bash_profile

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

OS X Mavericks не использует окружающая среда.plist-по крайней мере, не для приложений OS X windows. Вы можете использовать конфигурация launchd для оконных приложений. Этот.файл по-прежнему поддерживается, так как это часть оболочки Bash используется в терминале.

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

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

~/.MacOSX/environment.plist

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

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

похоже, что вы хотите изменить окружающую среду.файл plist, а не the .файл.

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

Edit: вот некоторые инструкции по созданию plist файл.

  1. Открыть Xcode
  2. Выберите Файл -> Создать -> Новый Файл...
  3. в разделе Mac OS X выберите ресурсы
  4. Выберите файл plist
  5. следуйте инструкциям

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

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

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

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

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

etc.

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

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

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

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

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

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

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

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

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

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

echo $PATH

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

затем сделать vim ~/.bash_profile и писать

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

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

затем сделать

source ~/.bash_profile

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

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

echo $PATH

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

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

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

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

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

    nano

  • Go в нижней части файла, и введите путь, который вы хотите добавить.
  • нажмите control-x, чтобы выйти.
  • введите "Y", чтобы сохранить измененный буфер.
  • откройте новое окно терминала и введите:

    echo $PATH

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

я получил эти сведения от этого сообщение:

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

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

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

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

  • ~/.bashrc
  • ~/.файл
  • ~/.профиль

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

Что Это Значит

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

  1. % > emacs .профиль
  2. [от ж / в типа emacs:]source ~/.bashrc
  3. [от ж / в типа emacs:]Ctrl + x Ctrl + s (сохранить файл)
  4. [от ж / в типа emacs:]Ctrl + x Ctrl + c (чтобы закрыть emacs)
  5. % > emacs .bashrc
  6. [из w / in emacs введите / вставьте все ваши команды bash, сохраните и выход]

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

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

setenv FOO barbaz

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

launchctl setenv FOO barbaz`

в самом деле .launchd.cond просто содержит команды launchctl.

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

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

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

настройка переменной среды PATH на Mac OS

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

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

сохраните файл и закройте текстовый редактор. Исполни свой .файл для обновления вашем пути.

source ~/.bash_profile

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

добавление переменных пути в 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

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

vi ~/.bash_profile

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

source ~/.bash_profile

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

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

  1. на / Applications / eclipse / Eclipse.приложение / содержание папку

  2. Изменить Данные.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>
      ...
    
  3. перезагрузить параметры для приложения с

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

позвольте мне проиллюстрировать вас на моем личном примере очень избыточным способом.

  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.

  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

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

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

создал папку / etc / environments создайте в нем файл под названием "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

подробнее, что, возможно, будет полезно для кого-то:

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

GPU_DUMP_DEVICE_KERNEL равно 3

GPU_DUMP_TRK_ENVPLIST is (null)

GPU_DUMP_TRK_APPPLIST is (null)

GPU_DUMP_TRK_DOTPROFILE is (null)

GPU_DUMP_TRK_RUNSCRIPT is (null)

GPU_DUMP_TRK_SCHARGS равно 1

GPU_DUMP_TRK_PUTENV равно 1

... с другой стороны, если я войду в терминал и скажу "set", кажется, что он получает только один из них .профиль (я бы подумал, что он будет подбирать среду.plist также, и я уверен, что когда-то я видел второй tracer envar в терминале, так что с тех пор что-то, вероятно, пошло не так. Долгий рабочий день....)

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

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

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

Шаг 3: export NODE_ENV=development

сохранить и закрыть.

перезагрузить систему.

сделано.

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

echo $NODE_ENV