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

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

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

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

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

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

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". Этот файл находится at:

~/.MacOSX/environment.plist

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

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

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

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

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

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

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

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


ваш ".профиль или." bash_profile "- это просто файлы, которые присутствуют в вашей папке" home". Если открыть окно Finder и щелкнуть имя учетной записи на панели Избранное ... ты их не увидишь. Если вы открываете окно терминала и вводите "ls" в список файлов ... ты все равно их не увидишь. Но вы можете найти их, используя" ls-a " в терминале. Или, если вы откроете свой любимый текстовый редактор (скажем, TextEdit, так как он поставляется с OS X) и сделать Файл->Открыть, а затем нажмите 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", если вы предпочитаете разбитый на страницы список) и убедитесь, что вы добавили в файл.

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


вот немного больше информации, конкретно касающейся переменной 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 для ссылки на переменную PATH, которая была построена до сих пор). Но установка пути здесь совершенно не нужна, учитывая два других варианта, хотя это место, где другие глобальные переменные среды могут быть установлены для всех пользователей.

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

BTW, чистая установка OS 10.7.у X Lion нет 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

Откройте программу терминала (по умолчанию она находится в папке 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

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

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. на / приложения / eclipse / Eclipse.приложение/содержание папку

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

    <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" и добавьте в него материал, который мне нужен, установленный глобально.

/и т. д.$ кот /и т. д./сред.д/Оракул

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. Я установил" tracer " envars, используя эти различные методы, чтобы сказать мне, какие из них попадают в область моего приложения. Из приведенного ниже вы можете видеть, что редактирование " схемы "в Xcode для добавления аргументов работает, как и"putenv". Что не это в том объеме:~/.MACOS / окружающая среда.plist, app-specific plist, .профиль и добавление фазы сборки для запуска пользовательского скрипта (я нашел другой способ в Xcode [по крайней мере], чтобы установить его, но забыл, что я назвал трассировщиком, и не могу найти его сейчас; возможно, это на другой машине....)

GPU_DUMP_DEVICE_KERNEL равно 3

GPU_DUMP_TRK_ENVPLIST is (null)

GPU_DUMP_TRK_APPPLIST is (null)

GPU_DUMP_TRK_DOTPROFILE является (null)

GPU_DUMP_TRK_RUNSCRIPT равно (null)

GPU_DUMP_TRK_SCHARGS равно 1

GPU_DUMP_TRK_PUTENV равно 1

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


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

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

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

Шаг 3: export NODE_ENV=development

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

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

сделано.

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

echo $NODE_ENV