Як змінити PATH для Homebrew?


150

Намагаючись встановити ruby ​​1.9.3, прочитайте, що мені потрібно спочатку встановити домашню мову. Лікар заварив заварювати, і це дає мені попередження. Один з яких:

Попередження: / usr / bin відбувається перед / usr / local / bin Це означає, що програми, що надаються системою, будуть використовуватися замість тих, що надаються Homebrew. На обох контурах існують такі інструменти:

easy_install
easy_install-2.6

Подумайте про внесення змін до PATH, щоб / usr / local / bin випереджав / usr / bin у вашій PATH.

Як можна робити те, що тут просять?


1
@AristotlePagaltzis «и відповідь на суперкористувачем дає найкраще рішення , на моєму погляді, дозволяючи ваші системні програми , щоб продовжувати використовувати /usr/bin, в той час як ви вибірково симлінк виконуваних файлів Homebrew , які ви хочете використовувати замість Apple, що поставляються версії, такі як Git.

@mrdavidjcole: fengd не відповів на це запитання?
фотинський

Переповнення стека - це сайт для програмування та питань розробки. Це питання видається поза темою, оскільки мова не йде про програмування чи розробку. Дивіться, які теми я можу запитати тут у довідковому центрі. Можливо, краще користуватися питаннями Super User або Apple Stack Exchange . Також див. Де я публікую запитання про Dev Ops? .
jww

Відповіді:


299

відкрийте файл / etc / paths, поставте / usr / local / bin поверх / usr / bin

$ sudo vi /etc/paths
/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

та Перезапустіть термінал @mmel


9
Перезавантажте середовище або запустіть новий термінал після внесення цих змін.
mmell

4
Не погоджуючись з цим - слід використовувати наведений нижче автомат часу відповіді і т. Д. Не вибере цю зміну, я думаю, як поза папкою користувача.
Ян Ворнер

Це також найкраще рішення, яке я знайшов, якщо ваша проблема полягає в тому, що RVM та Homebrew, здається, конкурують за однакову нерухомість у вашому файлі .bash_profile.
MCB

Я б НЕ редагував / etc / paths; натомість скористайтеся методами .profile / .bash_profile, описаними в інших місцях (наприклад, відповідь @avelis нижче або для більш параноїдального підходу, див. перший коментар з посиланням на відповідь Арістотеля
Пагальціса на SuperUser

1
Ви можете спробувати скористатися текстовим редактором нано-терміналу, а не через. Я вважав, що це простіше у використанні. "sudo nano / etc / paths" замість "sudo vi / etc / paths".
tbradley22

78

Існує багато способів оновити свій шлях. Відповідь Jun1st чудово працює. Інший метод полягає в тому, щоб збільшити свою .bash_profileнаявність:

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"

Рядок над місцями /usr/local/binта /usr/local/sbinперед вашим $PATH. Після того, як ви джерело СВОГО .bash_profileабо почати новий термінал ви можете перевірити свій шлях з допомогою луни «ІНГ його.

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/Users/<your account>/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Після задоволення результатом $ brew doctorповторного запуску більше не слід видавати вашу помилку.

Ця публікація в блозі допомогла мені вирішити проблеми, з якими я стикався. http://moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/


2
@JanuszChudzynski Для рішення Jun1st, можливо, вам доведеться перезапустити сеанс командного рядка, щоб побачити зміни.
avelis

Останні версії дня домашнього дня: Подумайте про встановлення PATH таким чином, щоб / usr / local / bin відбувався перед / usr / bin. Ось один вкладиш:echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile . Що в основному і підказує ця відповідь.
nacho4d

Однак я сумніваюся, що це правильний шлях. Дивіться нижче: Перед зміною: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binзміни: echo export PATH="/usr/local/bin:$PATH >> ~/.bash_profileПісля зміни: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin Це означає, що якщо команда не знайдена в / usr / local / bin, вона може бути здійснена пошук двічі, перш ніж вона буде знайдена в іншому шляху. Я думаю, що краще змінити /etc/pathsфайл
nacho4d

$ echo 'export PATH = "/ usr / local / bin: $ PATH"' >> ~ / .bash_profile дає мені $ PATH "'>> ~ / .bash_profile -bash: $: команда не знайдена
Mamba

@ rpeg Я впевнений, що якщо ви шукаєте підручники в Інтернеті, існує безліч ресурсів, але ось один я знаю. linux.com/learn/tutorials/272346-bash-101-working-at-the-cli
avelis

20

Просто запустіть наступний рядок у вашому улюбленому додатку терміналу:

echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile

Перезапустіть термінал і запустіть

brew doctor

питання має бути вирішене


3
Якщо ви використовуєте zsh, використовуйте цю команду echo 'export PATH = "/ usr / local / sbin: $ PATH"' >> ~ / .zshrc
kareem

1

відкрити профіль bash у textEdit

відкрити -e .bash_profile

Редагувати файл або вставити перед PATH експортувати PATH = / usr / bin: / usr / sbin: / bin: / sbin: / usr / local / bin: / usr / local / sbin: ~ / bin

зберегти та закрити файл

* Для відкриття .bash_profile безпосередньо відкрийте textEdit> файл> нещодавно


0

Щоб уникнути зайвого дублювання, я додав у свій ~ / .bash_profile наступне

case ":$PATH:" in
  *:/usr/local/bin:*) ;;     # do nothing if $PATH already contains /usr/local/bin
  *) PATH=/usr/local/bin:$PATH ;;  # in every other case, add it to the front
esac

Кредит: https://superuser.com/a/580611

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