Налаштування змінної середовища 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помилка.

Мені потрібен спосіб встановити ці змінні таким чином, що не потрібно буде встановлювати їх знову і знову щоразу, коли я відкриваю новий сеанс терміналу.


ви можете просто створити ~ / .profile більшість * nix систем розпізнавати файл і використовувати його, якщо він існує. можливо, вам знадобиться перезавантаження
trve.fa7ad

~ / .MacOSX / environment.plist застарілий.
П’єр АЛБАРÈДЕ

Відповіді:


258

Ви повинні додати його /etc/paths.

Довідка (яка працює для мене): Ось


6
Це єдине рішення, яке працює на El Capitan. Краще, ніж модифікувати .bash_profileта .profile.
ІгорГанапольський

1
Відповідь для доданої посилання, яка пояснює, як видалити елементи з контуру (у коментарях), також було схвалено.
Амудхан

Це працювало в EL Capitan. Закрийте всі термінали та відкрийте новий термінал, щоб перевірити echo $ PATH.
Прем Анант C,

Відповідь 5 років, але це все-таки найпростіше і найпростіше рішення. Дякуємо за відповідь + посилання
Rachit Magon,

Не забудьте «перезапустити» свій термінал.
Нейрай Сінгх

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


2
Мені дуже подобається редагування .bash_profile в деяких випадках, оскільки тоді, якщо у вас на комп’ютері було два облікові записи користувачів, ви можете додати скрипти лише для одного з них, наприклад, ~ / dev /
script

що я не усвідомлював, що я використовую zsh замість bash. Дякую!
Левиця

11

Ви також можете додати це

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

до ~/.bash_profile, тоді створіть, ~/.bashrcде ви можете просто додати більше шляхів до PATH. Приклад с.

export PATH=$PATH:.

Дякую. Я використовував попереднє рішення, але якщо застосувати цей метод, це означатиме, що я також можу встановити змінні DYLD_LIBRARY_PATH як постійні?
patti_jane

Так, ви повинні вміти. Якщо ви хочете побачити зміни, закрийте свій термінал і знову відкрийте його або введіть. ~/.bashrc
omoman

Я додаю код вище . ~/.bash_profile, після чого знову відкриваю термінал і набираю . ~/.bashrc, але він говорить, що такого файлу чи каталогу немає?
patti_jane

Вам потрібно його створити. Наведені вище рядки повідомляють вашому .bash_profileзавантаженню, .bashrcякщо воно існує. Потім у бланку .bashrcви можете додати все, що завгодно.
омоман

Дуже дякую! Я знаю, що я прошу занадто багато, але чи знаєте ви посилання, де правильно вказано, як створити .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"

7

Для додавання нового шляху до змінної середовища 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

1

Я спробував перший метод і пройшов через довідкову сторінку, добре виконаний налаштування шляху. Але він не взував встановлений шлях, коли я лунав $ PATH


1
Ви закрили термінал і перезапустили або подзвонили, sourceщоб завантажити нове середовище?
Дом

yaa..запущений термінал .. але змінна PATH знову не існує
IgnitedMind

Яка ти оболонка? Зверніться до ps -p $$. Якщо це не bash, файли запуску названі по-різному.
П’єр АЛБАРÈДЕ

0

Для налаштування шляху в Mac можна дотримуватися двох методів.

  1. Створення файлу для імені змінної та вставте туди шлях під /etc/paths.d та введіть файл у профіль_bashrc.
  2. Шлях експорту змінної в ~/.profile_bashrcякості

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

І джерело шляху. Його простий і стійкий.

Ви також можете встановити будь- path variableякий Mac terminalабо в linux.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.