Постоянная установка переменной среды PATH в OSX

143

Я прочитал несколько ответов о том, как установить переменные среды в OSX на постоянной основе.

Во-первых, я попробовал это: как навсегда установить $ PATH в Linux / Unix? но у меня было сообщение об ошибке no such file and directory, поэтому я подумал, что могу попробовать ~/.bash_profileвместо~/.profile , но это не работа.

Во-вторых, я нашел это решение. Как установить $ PATH, используемый приложениями в os x , который советует внести изменения в

~ / .MacOSX / environment.plist

но снова у меня была no such file and directoryошибка.

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

patti_jane
источник
вы можете просто создать ~ / .profile, большинство систем * nix распознают файл и используют его, если он существует. хотя вам может понадобиться перезагрузка
trve.fa7ad 06
~ / .MacOSX / environment.plist устарел.
Pierre ALBARÈDE 08

Ответы:

258

Вы должны добавить его в /etc/paths.

Ссылка (которая работает для меня): Здесь

Nitish
источник
6
Это единственное решение, которое работает на El Capitan. Лучше, чем модифицировать .bash_profileи .profile.
Игорь Ганапольский
1
Проголосовал за ответ на добавленную ссылку, в которой также объясняется, как удалить элементы из пути (в комментариях).
Амудхан
Это сработало в EL Capitan. Закройте все терминалы и откройте новый терминал, чтобы проверить echo $ PATH.
Prem Ananth C
Ответу 5 лет, но это все еще самое легкое и простое решение. Спасибо за ответ + ссылка
Рахит Магон
Не забудьте перезагрузить терминал.
Нирадж Сингх,
27

Я обнаружил, что есть некоторые файлы, которые могут влиять на $PATHпеременную в macOS (работает для меня, 10.11 El Capitan), перечисленные ниже:

  1. Как сказано в ответе vi /etc/paths, получившем наибольшее количество голосов, что рекомендуется с моей точки зрения.

  2. Также не забывайте /etc/paths.dкаталог, в котором находятся файлы, которые могут повлиять на $PATHпеременную, в моем случае задайте путь gitи mono-command. Вы можете ls -l /etc/paths.dперечислить элементы и rm /etc/paths.d/path_you_dislikeудалить элементы.

  3. Если вы используете среду «bash» (например, по умолчанию Terminal.app), вам следует проверить ~/.bash_profileили ~/.bashrc. Возможно, этого файла еще нет, но эти два файла влияют на расширение $PATH.

  4. Если вы используете среду «zsh» (например, Oh-My-Zsh ), вам следует проверить, ~./zshrcа не ~/.bash*вещь.

И не забудьте затем перезапустить все окна терминалаecho $PATH . $PATHСтрока будет PATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2.

Обратите внимание, что первые два способа ( /etc/pathsи /etc/path.d) находятся в /каталоге, который повлияет на все учетные записи на вашем компьютере, в то время как последние два способа ( ~/.bash*или ~/.zsh*) находятся в ~/каталоге (также известном как,/Users/yourusername/ ), который повлияет только на настройки вашей учетной записи.

Подробнее: Mac OS X: установка / изменение переменной $ PATH - nixCraft

iplus26
источник
2
Мне очень нравится редактировать .bash_profile в некоторых случаях, потому что тогда, если у вас есть две учетные записи пользователей на вашем компьютере, вы можете добавить скрипты только для одной из них, например, в ~ / dev / scripts
PeteW
чего я не понимал, так это того, что я использовал zsh вместо bash. Спасибо!
Львица
11

Вы также можете добавить это

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

к ~/.bash_profile, затем создайте, ~/.bashrcгде вы можете просто добавить больше путей в PATH. Пример с.

export PATH=$PATH:.
omoman
источник
Спасибо. Я использовал предыдущее решение, но если я применяю этот метод, будет ли это означать, что я также могу установить переменные DYLD_LIBRARY_PATH как постоянные?
patti_jane
Да, ты должен уметь. Если вы хотите увидеть изменения, закройте свой терминал и снова . ~/.bashrc
откройте
Я добавляю приведенный выше код . ~/.bash_profile, затем снова открываю терминал и набираю текст . ~/.bashrc, но там написано, что такого файла или каталога нет?
patti_jane
Вам нужно его создать. Вышеупомянутые строки говорят вам .bash_profileзагрузить, .bashrcесли он существует. Затем в пустое поле .bashrcможно добавить все, что угодно.
omoman
Большое спасибо! Я знаю, что прошу слишком многого, но знаете ли вы ссылку, где правильно указано, как ее создавать .bashrc? Мне не удалось найти хорошего.
patti_jane
8

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

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)

И добавить:

export PATH="$PATH:your/new/path/here"
Tiago
источник
8

Для добавления нового пути в переменную среды PATH в MacOS просто создайте новый файл в /etc/paths.dкаталоге и добавьте путь записи, который будет установлен в файле. Перезагрузите терминал. Вы можете проверить сecho $PATH в приглашении, чтобы подтвердить, был ли путь добавлен к переменной среды.

Например: чтобы добавить новый путь /usr/local/sbinк PATHпеременной:

cd /etc/paths.d
sudo vi newfile

Добавьте путь к файлу newfileи сохраните его.

Перезагрузите терминал и введите echo $PATHдля подтверждения

Ришаб Мишра
источник
Я не уверен, почему за этот ответ отказывают. Это кажется разумным и разумным способом организации переменных пути. Я использовал paths.d для создания отдельных файлов для каждой нестандартной переменной пути.
p_q
0

Для настройки пути в Mac можно использовать два метода.

  1. Создайте файл для имени переменной и вставьте путь туда в /etc/paths.d и отправьте файл в profile_bashrc.
  2. Экспортировать переменную пути в ~/.profile_bashrcвиде

    экспорт VARIABLE_NAME = $ (PATH_VALUE)

И укажите путь. Это просто и стабильно.

Вы можете установить любой path variableпо Mac terminalили linuxтакже.

Рам Кришна
источник