Как я устанавливаю переменные среды на OS X?


72

У меня всегда есть трудности установки переменных окружения в OS X, как JAVA_HOME, M2_HOMEили PATH. Как установить их на OS X Mavericks?

Я провел некоторое исследование, но ответы, которые я нашел, действительно не помогли мне еще:

  1. export JAVA_HOME=/... (Но похоже, что изменения временные, только для одного терминального сеанса.)
  2. setenv JAVA_HOME=/... (Но команда не найдена.)
  3. Откройте .profileи запишите переменные внутри, чтобы сделать изменения постоянными ( .profileне существует).
  4. Откройте .bash_profileи запишите переменные внутри, чтобы сделать изменения постоянными ( .bash_profileне существует).
  5. vi ~/.bash_profile(Довольно сложно для тех, кто не знает vi.)
  6. Создайте свой собственный enrivonment.plistфайл.

Может кто-нибудь, пожалуйста, проведите меня через шаги, чтобы заставить это работать на OS X Mavericks, предполагая, что никакое ноу-хау Unix?


1
Unix (и любая другая ОС) может быть трудной для новых пользователей, поэтому я могу понять ваше разочарование. Тем не менее, как написано, вопрос довольно широкий и не даст ответов, которые вы ищете. Не могли бы вы переписать его, чтобы сосредоточиться на проблеме, с которой вы на самом деле столкнулись (например, «Как настроить JAVA_HOME и PATH на Mavericks»), что обеспечит получение хороших ответов, на которых вы можете опираться?
nohillside

Как я вижу, Stuffe уже отредактировал мой вопрос. Thanx. Мой вопрос, как говорится в заголовке, как установить JAVA_HOME и PATH на Mavericks.
akcasoy

@patrix: В следующий раз я объясню вам мою проблему или то, что я хочу спросить, и вы напишите МОЙ ВОПРОС С СЛОВАМИ. ОК? Кажется, что вы, модераторы, очень довольны этим.
октября

Ответы:


45

У меня есть .profile в моем домашнем каталоге; он содержит много export …операторов для переменных среды.

Вы можете создать такой файл, открыв Терминал и введя команду touch .profile Закрыть Терминал.

Затем вы должны открыть этот файл в текстовом редакторе (например, TextWrangler). Вы также можете использовать nano .profileв окне терминала (текущий каталог должен быть вашим домом), что гораздо проще, чем vi. Вставьте строки, такие как export JAVA_HOME=…. Сохраните, выйдите, nanoесли вы использовали это, и выйдите из работающего Терминала.

Откройте Терминал и введите команду, envчтобы увидеть все переменные среды. Убедитесь, что те, которые вы определили, имеют значение, которое вы им присвоили. Тебе должно быть хорошо идти. Но не забывайте, что переменные среды, определенные в .profile, не передаются приложениям с графическим интерфейсом.


Большое спасибо. Это было то, что я действительно искал. Теперь я установил все мои переменные. Что вы подразумеваете под GUI-приложениями? Мне просто нужны были некоторые переменные для Java и Maven, чтобы работать с Eclipse, инструментами Spring и т. Д. Eclipse - это приложение с графическим интерфейсом пользователя (GUI). Вы имеете в виду это под GUI?
akcasoy

Хорошо. Я прочитал некоторые, и я думаю, что вы имеете в виду действительно GUI с GUI .. Есть ли способ сделать эти переменные доступными везде? Каков наиболее распространенный способ или где наиболее распространенное место, чтобы определить их тогда?
akcasoy

1. да, это то, что я имел в виду под GUI-приложением. 2. Установка переменных среды для приложений с графическим интерфейсом в OS X 10.8, кажется, довольно сложно. Некоторые приложения позволяют вам определять переменные среды, которые должны быть переданы другим приложениям, например, в их настройках. Вы также можете использовать open -a Appnameметод в терминальной сессии.
Bhas

4
Я не знаю почему, но для меня (OS X Yosemite 10.10.1) .profileэто не помогло. Я должен был поместить exportзаявления в, .bash_profileчтобы заставить это работать. Надеюсь, это поможет кому-то еще, если он
столкнется с такими

24

В Йосемити, вы должны положить export VARIABLE='something'внутрь .bash_profile.

Я пытался писать export VARIABLE='something'внутри .profileбез успеха.


На самом деле. .profile работает только тогда, когда вы выполняете его вручную через. source .profile Но после перезапуска .profile не загружается. .Bash_profile есть.
KC

не совсем правильно.
Корай Тугай,

2
@KorayTugay Не могли бы вы указать, что не так, и, возможно, способ исправить это?
Рафаэль Эйнг


7

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


Большой ! Я потратил целый день на то, чтобы решить проблему с переменными окружения, и меня нигде не было. Приложение, которое вы разместили, решило все мои проблемы с окружением
Shajo

5

Для добавления каталога в путь, есть лучшая опция в OS X: все записи в файле / etc / paths добавляются в путь перед запуском любой оболочки.

Отредактируйте этот файл с помощью:

sudo pico /etc/paths

Для получения дополнительной информации см .: https://gist.github.com/Overbryd/1669348


Спасибо! для меня это самый элегантный способ включить новый путь
Азимов

4

В OSX было только одно изменение переменных окружения, и это было в Lion, где ~ / .MacOSX / environment.plist был удален. Хотя также было изменение в оболочке по умолчанию в 10.2 или 10.3 с tsch на bash.

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

Вам также нужно понимать оболочки и Unix, которые по вашим комментариям вы еще не сделали полностью. Вокруг есть несколько уроков по nbash.

Что касается ваших очков

  1. Вы правильно понимаете, если вы находитесь в оболочке типа sh (например, bash или zsh)
  2. Это для оболочек C, например, tcsh, поэтому не будет работать с последними значениями по умолчанию.
  3. Вам нужно создать .profile, тогда это работает
  4. Это .bash_profile или лучше .bashrc, и вам нужно сначала создать файл
  5. Совершенно верно :) Используйте TextEdit или nano (или emacs)
  6. Исправьте до OSX 10.7 и попробуйте сделать это для программ, вызываемых из рабочей области, например, из Dock или Finder (или open)

Таким образом, 3 или 4 работают, если вы вызываете программу из командной строки (или из программы, запущенной в командной строке, но не открытой)

Что касается программ из GUI смотри этот вопрос

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


У меня до сих пор нет никакого результата. Связанный вопрос не подводит меня к решению. У меня есть Mac в течение 4 лет, но у меня до сих пор нет опыта работы с UNIX. Я думаю, когда ответ "Почему это чертовски сложно?" Если «plist был удален, изменение в 10.2 или 10.3, оболочка типа sh, до 10.7 и т. д.», ответ противоречит самому себе.
akcasoy

Это можно сделать очень легко, как в окнах. Во всяком случае ... то, чего я действительно ожидал, было что-то. как это: 1- открыть домашний каталог 2- открыть терминал 3- написать «xxx» 4-клик сохранить и т. д. не должно быть достаточно фона, чтобы установить простую переменную, по крайней мере, можно найти правильное решение из этих стандартных ответов на Интернет.
akcasoy

Если вам нужны переменные среды, вы должны понимать, что они делают, и для этого нужен фон. Кроме того, поскольку вы не указали, для чего вы использовали переменные, я должен указать все возможные различия. Примечание по настройке Java JAVA_HOME не обязательно является лучшим способом (см. Вопросы по Java)
user151019

Мой вопрос был о настройке переменных. Ни о том, что они делают, ни о какой-либо другой вещи, которая требует больше информации. Очевидно, вы можете установить их даже без фона. Спасибо за ваш ответ, хотя. Но, как я уже писал, достаточно простого предложения по решению, которое я уже получил благодаря Bhas.
akcasoy

Вы действительно не должны устанавливать переменные без фона, вы должны знать, что они делают
user151019

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.