Ustawienie zmiennej środowiskowej PATH w OSX na stałe

148

Przeczytałem kilka odpowiedzi, jak ustawić zmienne środowiskowe na OSX jako stałe.

Najpierw wypróbowałem to, jak ustawić na stałe $ PATH w systemie Linux / Unix? ale pojawił się komunikat o błędzie no such file and directory, więc pomyślałem, że mogę spróbować ~/.bash_profilezamiast, ~/.profileale to nie zadziałało.

Po drugie, znalazłem to rozwiązanie. Jak ustawić $ PATH jako używane przez aplikacje w systemie os x , które radzą wprowadzać zmiany w

~ / .MacOSX / environment.plist

ale znowu miałem no such file and directorybłąd.

Potrzebuję sposobu, aby ustawić te zmienne w taki sposób, aby nie wymagało ich ustawiania za każdym razem, gdy otwieram nową sesję terminala.

patti_jane
źródło
możesz po prostu utworzyć ~ / .profile. Większość systemów * nix rozpoznaje plik i używa go, jeśli istnieje. możesz jednak potrzebować ponownego uruchomienia
trve.fa7ad
~ / .MacOSX / environment.plist jest przestarzałe.
Pierre ALBARÈDE

Odpowiedzi:

272

Musisz to dodać do /etc/paths.

Odniesienie (które działa dla mnie): Tutaj

Nitish
źródło
6
To jedyne rozwiązanie, które działa na El Capitan. Lepsze niż modyfikowanie .bash_profilei .profile.
Igor Ganapolsky
1
Głosowałem za odpowiedzią na dodane odniesienie, które wyjaśnia również, jak usunąć elementy ze ścieżki (w komentarzach).
Amudhan
To działało w EL Capitan. Zamknij wszystkie terminale i otwórz nowy terminal, aby sprawdzić echo $ PATH.
Prem Ananth C
3
Nie zapomnij „zrestartować” terminala.
Neeraj Singh
1
Działa również dobrze na macOS Catalina. Po wprowadzeniu zmian uruchom ponownie terminal.
Amal Augustine Jose
29

Odkryłem, że istnieją pliki, które mogą wpływać na $PATHzmienną w macOS (działa dla mnie, 10.11 El Capitan), wymienione poniżej:

  1. Jak powiedziała odpowiedź vi /etc/paths, która uzyskała najwięcej głosów , co jest zalecane z mojego punktu widzenia.

  2. Nie zapomnij również o /etc/paths.dkatalogu, w którym znajdują się pliki, które mogą wpływać na $PATHzmienną, ustaw w moim przypadku ścieżkę giti mono-command. Możesz ls -l /etc/paths.dwystawiać przedmioty i rm /etc/paths.d/path_you_dislikeusuwać przedmioty.

  3. Jeśli używasz środowiska „bash” ( Terminal.appna przykład domyślnego ), powinieneś sprawdzić ~/.bash_profilelub ~/.bashrc. Może jeszcze nie być tego pliku, ale te dwa pliki mają wpływ na $PATH.

  4. Jeśli używasz środowiska "zsh" ( na przykład Oh-My-Zsh ), powinieneś sprawdzić ~./zshrczamiast ~/.bash*rzeczy.

I nie zapomnij ponownie uruchomić wszystkich okien terminalaecho $PATH . $PATHCiąg będzie PATH_SET_IN_3&4:PATH_SET_IN_1:PATH_SET_IN_2.

Zauważyłem, że pierwsze dwa sposoby ( /etc/pathsi /etc/path.d) znajdują się w /katalogu, co wpłynie na wszystkie konta na twoim komputerze, podczas gdy ostatnie dwa sposoby ( ~/.bash*lub ~/.zsh*) znajdują się w ~/katalogu (aka,/Users/yourusername/ ), co wpłynie tylko na ustawienia twojego konta.

Czytaj więcej: Mac OS X: Ustaw / zmień zmienną $ PATH - nixCraft

iplus26
źródło
2
W niektórych przypadkach lubię edytować .bash_profile, ponieważ wtedy, gdybyś miał dwa konta użytkowników na swoim komputerze, mógłbyś dodać skrypty tylko dla jednego z nich np. ~ / Dev / scripts
PeteW
nie zdawałem sobie sprawy, że używam zsh zamiast bash. dzięki!
Lioness
11

Możesz też to dodać

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

do ~/.bash_profile, a następnie utwórz miejsce, w ~/.bashrcktórym możesz po prostu dodać więcej ścieżek do PATH. Przykład z.

export PATH=$PATH:.
omoman
źródło
Dziękuję Ci. Korzystałem z poprzedniego rozwiązania, ale czy jeśli zastosuję tę metodę, będzie to oznaczało, że mogę ustawić zmienne DYLD_LIBRARY_PATH również jako trwałe?
patti_jane
Tak, powinieneś być w stanie. Jeśli chcesz zobaczyć zmiany, zamknij terminal i otwórz go ponownie lub napisz. ~/.bashrc
omoman
Dodaję powyższy kod do . ~/.bash_profile, a następnie ponownie otwieram terminal i wpisuję . ~/.bashrc, ale nie ma takiego pliku lub katalogu?
patti_jane
Musisz to stworzyć. Powyższe linie mówią, .bash_profileaby załadować, .bashrcjeśli istnieje. Następnie w pustym miejscu .bashrcmożesz dodać wszystko, co chcesz.
omoman
Wielkie dzięki! Wiem, że pytam za dużo, ale czy znasz link, w którym jest poprawnie napisane, jak utworzyć .bashrc? Nie mogłem znaleźć dobrego.
patti_jane
9

Aby dodać nową ścieżkę do zmiennej środowiskowej PATH w systemie MacOS, wystarczy utworzyć nowy plik w /etc/paths.dkatalogu i dodać ścieżkę zapisu, która ma zostać ustawiona w pliku. Uruchom ponownie terminal. Możesz to sprawdzićecho $PATH w monicie, aby potwierdzić, czy ścieżka została dodana do zmiennej środowiskowej.

Na przykład: aby dodać nową ścieżkę /usr/local/sbindo PATHzmiennej:

cd /etc/paths.d
sudo vi newfile

Dodaj ścieżkę do newfilei zapisz ją.

Uruchom ponownie terminal i wpisz, echo $PATHaby potwierdzić

Rishabh Mishra
źródło
Nie jestem pewien, dlaczego ta odpowiedź jest odrzucana. Wydaje się, że jest to rozsądny i rozsądny sposób organizowania zmiennych ścieżki. Użyłem path.d do stworzenia indywidualnych plików dla każdej niestandardowej zmiennej ścieżki.
p_q
8

Możesz otworzyć dowolny z następujących plików:

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)

I dodaj:

export PATH="$PATH:your/new/path/here"
Tiago
źródło
0

Aby skonfigurować ścieżkę w systemie Mac, można zastosować dwie metody.

  1. Utworzenie pliku dla nazwy zmiennej i wklej tam ścieżkę w /etc/paths.d i zbierz plik do profile_bashrc.
  2. Eksportuj zmienną ścieżki w ~/.profile_bashrcformacie

    eksportuj VARIABLE_NAME = $ (PATH_VALUE)

ORAZ podaj ścieżkę. Jest prosty i stabilny.

Możesz ustawić dowolne path variableprzez Mac terminallub w linuxrównież.

Ram Krishna
źródło