Змінення PATH, щоб / usr / local / bin випередив / usr / bin


24

Я намагаюся встановити brew, але отримую таке попередження:

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

2to3
2to3-2.7
idle
idle2.7
pydoc
pydoc2.7
python
python-config
python2.7
python2.7-config
pythonw
pythonw2.7
smtpd.py
smtpd2.7.py

Consider amending your PATH so that /usr/local/bin
is ahead of /usr/bin in your PATH.

Я поняття не маю, як змінити шлях. Я дослідив кілька файлів із цієї публікації про переповнення стека (http://stackoverflow.com/questions/8886114/using-brew-with-ruby-1-9-2), але не можу знайти шлях для редагування для редагування. Єдиний файл, який у мене є, є мій / etc / файл файла, який наразі виглядає так:

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
    PATH="/Library/Frameworks/Python.framework/Versions/2.7/local/bin:${PATH}"
export PATH

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

Чи є простий спосіб змінити шлях? Чи слід створити .bash_profile файл? Заздалегідь дякую за будь-яку допомогу.

Відповіді:


30

Так, створіть .bash_profileу домашньому каталозі файл, що містить

PATH="/usr/local/bin:$PATH"

а потім зробіть одну з наступних дій, щоб активувати зміни

  • виконати . ~/.bash_profile
  • виконати PATH="/usr/local/bin:$PATH"в поточній оболонці
  • перезапустити термінал

2
@threenovation якщо відповідь вище правильна, я можу запропонувати вам позначити її як відповідь (натисніть галочку поруч із відповіддю)
Стю Вілсон,

Цікаво, чи варто це експортувати? Дитячі процеси також повинні мати цей новий шлях. Також: Коли я налаштував варити, воно не попередило, що / usr / bin прийшов раніше / usr / local / bin.
Стівен Лу

@StevenLu, це вже експортується до моменту, коли ви перейдете до .bash_profile. Не завадило б явно експортувати його знову, але не потрібно.
Глен Джекман

Дякую за це Працювали "Ваша система вариться".
Везу

Здається, я отримую дублікати записів $PATH.
flow2k

10

Вам потрібно внести зміни / etc / paths, щоб / usr / local / bin був вказаний перед / usr / bin . Для цього вам потрібно буде подати судо свого редактора.

Один із способів відкрити редактор - це

 sudo open -t /etc/paths

Мій PATH був правильно налаштований у моєму .bash_profile, але не в /etc/paths. Це прекрасно спрацювало.
Нік Томлін

7
НЕ використовуйте цей метод для встановлення вашого шляху - є ризик, що нетермінальні програми підберуть «заварені» компоненти і вийдуть з ладу. Використання "sudo" також має бути червоним прапором, якщо ви по-справжньому не розумієте, що ви робите (особливо з такою системою розробки на рівні користувача, як Mac Homebrew). Редагування .bash_profile та перезапуск терміналу має бути достатнім.
rholmes

@rholmes Так зміни стосуються лише .bash_profileінтерактивних оболонок користувача, а не інших програм?
flow2k

1
@ flow2k .bash_profile вплине на інтерактивні оболонки користувачів. Будь-які експортовані змінні будуть помічені програмами, запущеними з командного рядка оболонки (наприклад, запуск "звичайного" додатка для Mac або командного рядка). Тут ви можете ознайомитись з деякими деталями, але вони чіткіше розрізняють те, що ви просили: scriptingosx.com/2017/04/about-bash_profile-and-bashrc-on-macos Відповідь Гленн Джекман - саме той, який потрібно використовувати .
rholmes

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