Как изменить PATH для Homebrew?


150

Пытаясь установить ruby ​​1.9.3, прочитайте, что мне нужно сначала установить homebrew. Побежал заварить доктора, и это дает мне кучу предупреждений. Одним из которых является:

Предупреждение: / 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 не ответил на этот вопрос?
Фотинский

Stack Overflow - сайт для вопросов программирования и разработки. Этот вопрос кажется не по теме, потому что он не касается программирования или разработки. Смотрите, какие темы я могу задать здесь, в Справочном центре. Возможно, лучше спросить Super User или Apple Stack Exchange . Также см. Где я могу разместить вопросы о Dev Ops? ,
июня

Ответы:


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
Перезагрузите среду или запустите новый терминал после внесения этих изменений.
13:00

4
Не согласен с этим - следует использовать приведенный ниже ответ - машина времени и т. Д. Не примет это изменение, я думаю, что это за пределами пользовательской папки.
Ян Уорнер,

Это также лучшее решение, которое я нашел, если ваша проблема заключается в том, что RVM и Homebrew, похоже, конкурируют за одну и ту же недвижимость в вашем файле .bash_profile.
MCB

Я не буду редактировать / etc / paths; вместо этого используйте методы .profile / .bash_profile, описанные в другом месте (например, ответ @avelis ниже или для более параноидального подхода, см. первый комментарий, ссылающийся на ответ AristotlePagaltzis на SuperUser.
rholmes

1
Вы можете попробовать использовать текстовый редактор Nano Terminal, а не через. Я обнаружил, что это проще в использовании. "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 может потребоваться перезапустить сеанс командной строки, чтобы увидеть изменения.
Авелис

Последние версии домашнего дня: рассмотрите возможность установки 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: $: команда не найдена
Мамба

@ rpeg Я уверен, что если вы будете искать учебники в Интернете, то у вас будет много ресурсов, но вот один, который я знаю. linux.com/learn/tutorials/272346-bash-101-working-at-the-cli
Авелис

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> file> недавний


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.