Установка переменных среды в OS X - PullRequest
826 голосов
/ 26 сентября 2008

Как правильно изменить переменные окружения, такие как PATH в OS X?

Я немного посмотрел в Google и нашел три разных файла для редактирования:

  • / и т.д. / пути
  • ~ / .profile
  • ~ / .tcshrc

У меня даже нет некоторых из этих файлов, и я уверен, что .tcshrc не так, поскольку OS X теперь использует bash. Где эти переменные, особенно PATH, определены?

Я работаю OS X v10.5 (Leopard).

Ответы [ 30 ]

3 голосов
/ 07 февраля 2011

В дополнение к предлагаемым подходам следует отметить, что, по крайней мере, в OS X 10.5 (Leopard) переменные, установленные в launchd.conf, будут объединены с настройками, установленными в .profile , Я предполагаю, что это, вероятно, будет также верно для настроек в ~/.MacOSX/environment.plist, но я не проверял.

3 голосов
/ 26 сентября 2008

Ну, я не уверен насчет файлов /etc/paths и ~/.MacOSX/environment.plist. Это новые.

Но с Bash вы должны знать, что .bashrc выполняется при каждом новом вызове оболочки и .bash_profile выполняется только один раз при запуске.

Я не знаю, как часто это происходит с Mac OS X. Я думаю, что различие сломалось, когда оконная система запускает все.

Лично я устраняю путаницу, создавая файл .bashrc со всем, что мне нужно, и затем делаю:

ln -s .bashrc .bash_profile
3 голосов
/ 19 декабря 2013

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

Откройте программу «Терминал» (по умолчанию она находится в папке «Программы / Утилиты»). Запустите следующую команду коснитесь ~ / .bash_profile; открыть ~ / .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

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

3 голосов
/ 26 сентября 2008

Для однопользовательской модификации используйте ~/.profile из перечисленных вами. Следующая ссылка объясняет, когда Bash читает разные файлы.

http://telin.ugent.be/~slippens/drupal/bashrc_and_others

Если вы хотите установить переменную окружения для приложений графического интерфейса, вам нужен файл ~ / .MacOSX / environment.plist

2 голосов
/ 15 октября 2018

Вся магия в IOS работает только с использованием source с файлом, куда вы экспортируете свои переменные ENV.

Например:

Вы можете создать файл следующим образом:

export bim=fooo
export bom=bar

Сохраните этот файл как bimbom.env и выполните source ./bimbom.ev Вуаля, вы получили свои переменные ENV.

Проверьте их с помощью: echo $bim

2 голосов
/ 27 апреля 2015

Логин Оболочки

/etc/profile

Оболочка сначала выполняет команды в / etc / profile. Пользователь, работающий с привилегиями суперпользователя, может настроить этот файл для установки общесистемных характеристик по умолчанию для пользователей, работающих под управлением bash.

.bash_profile 
.bash_login 
.profile

Затем оболочка ищет ~ / .bash_profile, ~ / .bash_login и ~ / .profile (~ / - это сокращение от вашего домашнего каталога), в этом порядке, выполняя команды в первом из этих файлов: находит. Вы можете поместить команды в один из этих файлов, чтобы переопределить значения по умолчанию, установленные в / etc / profile. Оболочка, запущенная на виртуальном терминале, не выполняет команды в этих файлах.

.bash_logout

Когда вы выходите из системы, bash выполняет команды в файле ~ / .bash_logout. Этот файл часто содержит команды, которые очищают после сеанса, например, те, которые удаляют временные файлы.

Интерактивные нелогиновые оболочки

/etc/bashrc

Несмотря на то, что bash не вызывается напрямую, многие файлы ~ / .bashrc вызывают / etc / bashrc. Эта настройка позволяет пользователю, работающему с привилегиями root, устанавливать общесистемные характеристики по умолчанию для нелогинных командных оболочек.

.bashrc

Интерактивная нелогинная оболочка выполняет команды в файле ~ / .bashrc. Как правило, файл запуска для оболочки входа в систему, такой как .bash_profile, запускает этот файл, поэтому команды входа в систему и nonlogin запускают команды в .bashrc.

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

2 голосов
/ 22 января 2015

Здесь есть два типа снарядов.

  • Без логина: .bashrc перезагружается каждый раз, когда вы запускаете новую копию bash
  • Логин: .profile загружается только когда вы входите в систему или явно указываете bash загрузить его и использовать в качестве оболочки входа.

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

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

  • .profile: создать его несуществующим. Поместите туда настройку PATH.
  • .bashrc: создать, если не существует. Поместите туда все свои псевдонимы и пользовательский метод.
  • .bash_profile: создать, если не существует. Поместите туда следующее.

.bash_file:

#!/bin/bash
source ~/.profile # Get the PATH settings
source ~/.bashrc  # Get Aliases and Functions
#
2 голосов
/ 08 октября 2014

Просто сделал это действительно легко и быстро. Сначала создайте ~ / .bash_profile из терминала:

touch .bash_profile

тогда

open -a TextEdit.app .bash_profile

добавить

export TOMCAT_HOME=/Library/Tomcat/Home

Сохраните документацию, и все готово.

1 голос
/ 10 июля 2011

Для Bash попробуйте добавить переменные окружения в файл /etc/profile, чтобы сделать их доступными для всех пользователей. Не нужно перезагружаться, просто начните новый сеанс терминала.

1 голос
/ 17 февраля 2014

Это довольно просто, отредактируйте файл .profile (vi, nano, sublimeText или другой текстовый редактор), вы можете найти его в ~ / directory (user directory) и установить так:

export MY_VAR=[your value here]

пример с Java дома:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/current

сохраните его и вернитесь в терминал.

Вы можете перезагрузить его с помощью:

source .profile или закройте / откройте окно терминала.

...