Jak zmodyfikować PATH dla Homebrew?

150

Próbując zainstalować Ruby 1.9.3, przeczytaj, że muszę najpierw zainstalować homebrew. Prowadziłam lekarza warzelni i daje mi kilka ostrzeżeń. Jednym z nich jest:

Ostrzeżenie: / usr / bin występuje przed / usr / local / bin Oznacza to, że będą używane programy dostarczane przez system zamiast programów dostarczanych przez Homebrew. Na obu ścieżkach istnieją następujące narzędzia:

easy_install
easy_install-2.6

Rozważ zmianę swojej ŚCIEŻKI, aby / usr / local / bin znajdował się przed / usr / bin w Twojej ŚCIEŻCE.

Jak można zrobić to, o co się tutaj pyta?

mrdavidjcole
źródło
1
@AristotlePagaltzis „s odpowiedź na superuser daje najlepsze rozwiązanie moim zdaniem, dzięki czemu aplikacje systemowe do dalszego korzystania /usr/bin, podczas selektywnie podlinkowujemy wykonywalne homebrew, które chcesz użyć zamiast Apple dostarczanych wersjach, takich jak Git.
@mrdavidjcole: fengd nie odpowiedział na to pytanie?
fotinsky,
Stack Overflow to witryna zawierająca pytania dotyczące programowania i programowania. To pytanie wydaje się być niezwiązane z tematem, ponieważ nie dotyczy programowania ani programowania. Zobacz, o jakie tematy mogę zapytać w Centrum pomocy. Być może lepszym miejscem do zadawania pytań będzie Super User lub Apple Stack Exchange . Zobacz też Gdzie mogę zadawać pytania dotyczące operacji deweloperskich? .
jww

Odpowiedzi:

299

otwórz plik / etc / path, umieść / usr / local / bin na górze / usr / bin

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

i uruchom ponownie terminal , @mmel

fengd
źródło
9
Po dokonaniu tej zmiany przeładuj środowisko lub uruchom nowy terminal.
mmell
4
Nie zgadzam się z tym - powinien użyć poniższej odpowiedzi - wehikuł czasu itp. Nie wykryje tej zmiany, myślę, że jest to poza folderem użytkownika.
Ian Warner
Jest to również najlepsze rozwiązanie, jakie znalazłem, jeśli problem polega na tym, że RVM i Homebrew wydają się konkurować o tę samą nieruchomość w pliku .bash_profile.
MCB
NIE edytowałbym / etc / path; zamiast tego użyj metod .profile / .bash_profile opisanych w innym miejscu (np. odpowiedź @avelis poniżej lub dla bardziej paranoidalnego podejścia, zobacz pierwszy komentarz odwołujący się do odpowiedzi AristotlePagaltzis w witrynie SuperUser.
rholmes
1
Możesz spróbować użyć edytora tekstu terminala nano zamiast przez. Okazało się, że jest to łatwiejsze w użyciu. „sudo nano / etc / path” zamiast „sudo vi / etc / path”.
tbradley22
78

Istnieje wiele sposobów aktualizacji ścieżki. Pierwsza odpowiedź działa świetnie. Inną metodą jest zwiększenie .bash_profilemożliwości posiadania:

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

Linia nad miejscami /usr/local/bini /usr/local/sbinprzed $PATH. Gdy źródło swojej .bash_profilelub rozpocząć nowy terminal można sprawdzić swoją drogę przez echo „ing go.

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

Gdy wynik będzie satysfakcjonujący, $ brew doctorponowne uruchomienie nie powinno już powodować błędu.

Ten wpis na blogu pomógł mi w rozwiązaniu napotkanych problemów. http://moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/

avelis
źródło
2
@JanuszChudzynski W przypadku rozwiązania Jun1st może być konieczne ponowne uruchomienie sesji wiersza poleceń, aby zobaczyć zmianę.
avelis
Najnowsze wersje homebrew day: Rozważ ustawienie ŚCIEŻKI tak, aby / usr / local / bin występował przed / usr / bin. Oto jeden-liner:echo export PATH="/usr/local/bin:$PATH" >> ~/.bash_profile . I to właśnie sugeruje ta odpowiedź.
nacho4d
Jednak wątpię, czy to właściwa droga. Zobacz poniżej: Przed zmianą: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binzmiana: echo export PATH="/usr/local/bin:$PATH >> ~/.bash_profilePo zmianie: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin Oznacza to, że jeśli polecenie nie zostanie znalezione w / usr / local / bin, może zostać przeszukane dwukrotnie, zanim zostanie znalezione w innej ścieżce. Myślę, że lepiej zmienić /etc/pathsplik
nacho4d
$ echo 'export PATH = "/ usr / local / bin: $ PATH"' >> ~ / .bash_profile daje mi $ PATH "'>> ~ / .bash_profile -bash: $: command not found
Mamba
@rpeg Jestem pewien, że jeśli szukasz samouczków w Internecie, jest mnóstwo zasobów, ale oto jeden, który znam. linux.com/learn/tutorials/272346-bash-101-working-at-the-cli
avelis
20

Po prostu uruchom następujący wiersz w swojej ulubionej aplikacji terminalowej:

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

Uruchom ponownie terminal i uruchom

brew doctor

problem powinien zostać rozwiązany

iceturk22
źródło
3
Jeśli używasz zsh, użyj tego polecenia echo 'export PATH = "/ usr / local / sbin: $ PATH"' >> ~ / .zshrc
kareem
1

otwórz profil bash w textEdit

otwórz -e .bash_profile

Edytuj plik lub wklej przed PATH export PATH = / usr / bin: / usr / sbin: / bin: / sbin: / usr / local / bin: / usr / local / sbin: ~ / bin

zapisz i zamknij plik

* Aby otworzyć .bash_profile bezpośrednio otwórz textEdit> plik> ostatnie

Siddhant Raut
źródło
0

Aby uniknąć niepotrzebnego powielania, dodałem do mojego ~ / .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

Kredyt: https://superuser.com/a/580611

mycargus
źródło