Ustaw zmienne środowiskowe w systemie Mac OS X Lion

532

Kiedy ktoś mówi „edytuj plik .plist” lub „twój .profile” lub „.bash_profile” itp., To mnie tylko myli. Nie mam pojęcia, gdzie są te pliki, jak je utworzyć, jeśli muszę to zrobić itp., A także dlaczego wydaje się, że jest tak wiele różnych (dlaczego? Czy robią różne rzeczy?)

Czy ktoś mógłby więc bardzo cierpliwie wyjaśnić poprzedniemu użytkownikowi systemu Windows (desperacko chcącemu lepiej poznać przyjemny, choć początkowo nieco mylący świat OS X), jak to zrobić krok po kroku?

Potrzebuję ustawić zmienne zarówno dla aplikacji GUI, jak i aplikacji wiersza poleceń, a obecnie jest to skrypt mrówki, który potrzebuje zmiennych, ale najprawdopodobniej będą też inne potrzeby.

Pamiętaj, że ja też mam Lion, ponieważ wiele odpowiedzi, które dostajesz w Google, wydaje się być nieaktualnych dla Lion ...

Zauważ też, że mam praktycznie zerowe doświadczenie w korzystaniu z terminalu. Chcę się uczyć, ale proszę wyjaśnić nowicjuszowi ...

Anders
źródło
Brak odpowiedzi zadziała, jeśli spróbujesz odczytać ją z jakiejś aplikacji, takiej jak wiosna.
Mehraj Malik,

Odpowiedzi:

403

Po pierwsze, jedną rzeczą do rozpoznania w OS X jest to, że jest on zbudowany na Uniksie. W tym miejscu pojawia się plik .bash_profile. Po uruchomieniu aplikacji Terminal w OS X domyślnie dostajesz powłokę bash. Powłoka bash pochodzi z Uniksa i po załadowaniu uruchamia skrypt .bash_profile. Możesz zmodyfikować ten skrypt, aby użytkownik mógł zmienić ustawienia. Ten plik znajduje się w:

~/.bash_profile

Aktualizacja dla Mavericks

OS X Mavericks nie używa środowiska.pl. Przynajmniej nie dla aplikacji systemu Windows X. Możesz użyć uruchomionej konfiguracji dla aplikacji okienkowych. Plik .bash_profile jest nadal obsługiwany, ponieważ jest to część powłoki bash używanej w terminalu.

Tylko lew i lew górski

Aplikacje okienkowe OS X odbierają zmienne środowiskowe z pliku environment.plist. Prawdopodobnie to masz na myśli przez plik „.plist”. Ten plik znajduje się w:

~/.MacOSX/environment.plist

Jeśli dokonasz zmiany w pliku environment.plist, wówczas aplikacje systemu Windows X, w tym aplikacja Terminal, będą miały ustawione te zmienne środowiskowe. Każda zmienna środowiskowa ustawiona w pliku .bash_profile wpływa tylko na powłoki bash.

Zasadniczo ustawiam zmienne tylko w moim pliku .bash_profile i nie zmieniam pliku .plist (ani pliku uruchamianego w Mavericks). Większość aplikacji okienkowych OS X nie potrzebuje żadnego niestandardowego środowiska. Tylko wtedy, gdy aplikacja rzeczywiście potrzebuje określonej zmiennej środowiskowej, zmieniam environment.plist (lub uruchamiam plik w Mavericks).

Wygląda na to, że chcesz zmienić plik environment.plist, a nie plik .bash_profile.

I ostatnia rzecz, jeśli szukasz tych plików, myślę, że ich nie znajdziesz. Jeśli dobrze pamiętam, nie były one w mojej pierwszej instalacji Lion.

Edycja: Oto kilka instrukcji tworzenia pliku plist.

  1. Otwórz Xcode
  2. Wybierz Plik -> Nowy -> Nowy plik ...
  3. W systemie Mac OS X wybierz opcję Zasoby
  4. Wybierz plik Plist
  5. Postępuj zgodnie z pozostałymi instrukcjami

Aby edytować plik, kliknij z wciśniętym klawiszem Control, aby uzyskać menu i wybierz Dodaj wiersz. Następnie możesz dodać parę klucz-wartość. W przypadku zmiennych środowiskowych kluczem jest nazwa zmiennej środowiskowej, a wartość to rzeczywista wartość tej zmiennej środowiskowej.

Po utworzeniu pliku plist możesz go otworzyć za pomocą Xcode, aby zmodyfikować go w dowolnym momencie.

David V.
źródło
Ok dzięki. Myślę, że zrozumiałem, że tylda oznacza mój tak zwany folder domowy, prawda (tj. / Users / Anders w moim przypadku)? Więc jeśli nie istnieją, powinienem utworzyć nowy pusty plik tekstowy o nazwach, o których wspomniałeś (czy będę mógł utworzyć plik, który zaczyna się od kropki?)? A następnie dodaj co w tych plikach, aby ustawić zmienną środowiskową? Na przykład muszę dodać zmienną AHF_OPT, która powinna wskazywać folder potrzebny przez skrypt ant, jak dodać to w tych dwóch plikach?
Anders
1
Dwie rzeczy do wypróbowania: po pierwsze, czy wklejony ciąg ma niepoprawny średnik po „.dtd>” Być może jest to błąd kopiowania i wklejania, ale musiałem go usunąć, aby Xcode mógł odczytać plik. Po drugie, może być konieczne wylogowanie się i ponowne zalogowanie, aby efekty mogły mieć miejsce.
David V
7
Warto też wiedzieć o tym ~/.bashrc. ~/.bashrcplik działa za każdym razem, gdy otwierasz nową powłokę bash bez logowania, taką jak xterm / aterm, i ~/.bash_profiledziała tylko z powłokami logowania, tj. przy pierwszym logowaniu do systemu.
DanSkeel
1
Znalazłem ładne jasne wyjaśnienie na temat dodawania środowiska.pl.pl tutaj developer.apple.com/library/mac/#qa/qa1067/_index.html .
I w końcu
1
Świetna odpowiedź, z wyjątkiem niezręcznej frazy „Aplikacja systemu Windows X”. To nawet gorsze niż nazywanie X11 „X Windows”. Lepiej nazwać to Aqua lub po prostu „aplikacjami .app”.
SigmaX,
222

Twoje pliki .profilelub .bash_profilesą po prostu plikami znajdującymi się w folderze „domowym”. Jeśli otworzysz okno Findera i klikniesz nazwę swojego konta w panelu Ulubione, nie zobaczysz ich. Jeśli otworzysz okno terminala i wpiszesz lslistę plików, nadal ich nie zobaczysz. Można je jednak znaleźć, używając ls -aw terminalu. Lub jeśli otworzysz swój ulubiony edytor tekstu (powiedz TextEdit, ponieważ jest on dostarczany z systemem OS X) i wykonasz polecenie Plik-> Otwórz, a następnie naciśnij Command+ Shift+ .i kliknij nazwę konta (folder domowy), zobaczysz je również. Jeśli ich nie widzisz, możesz utworzyć taki w swoim ulubionym edytorze tekstu.

Teraz dodawanie zmiennych środowiskowych jest stosunkowo proste i niezwykle podobne pod względem koncepcyjnym do okien. Po .profileprostu dodaj, po jednym w wierszu, nazwę zmiennej i jej wartość w następujący sposób:

export JAVA_HOME=/Library/Java/Home
export JRE_HOME=/Library/Java/Home

itp.

Jeśli modyfikujesz zmienną „PATH”, pamiętaj o dołączeniu domyślnej PATH systemu, która została już dla Ciebie ustawiona:

export PATH=$PATH:/path/to/my/stuff

Oto dziwna część: możesz albo otworzyć nowe okno terminala, aby nowe zmienne zadziałały, albo będziesz musiał wpisać .profilelub .bash_profileponownie załadować plik i zastosować zawartość w środowisku bieżącego terminala.

Możesz sprawdzić, czy zmiany weszły w życie za pomocą polecenia „set” w swoim terminalu. Po prostu wpisz set(lub set | morejeśli wolisz paginowaną listę) i upewnij się, że tam jest to, co dodałeś do pliku.

Jeśli chodzi o dodawanie zmiennych środowiskowych do aplikacji GUI, zwykle nie jest to konieczne i chciałbym usłyszeć więcej o tym, co konkretnie próbujesz zrobić, aby lepiej dać ci na to odpowiedź.

tokkov
źródło
2
Dzięki, nie do końca zrozumiałem ostatnią część, albo muszę otworzyć okno terminala, aby je ustawić, albo wpisać .profile? Ale czy nie musiałbym otwierać okna terminala, aby wpisać .profile? A jeśli są one ustawiane automatycznie po prostu przez otwarcie okna terminalu, to dlaczego muszę to wpisać ...? A kiedy je otworzę, czy zostaną wówczas ustawione na stałe? Prawdopodobnie źle cię zrozumiałem, ponieważ nawet moje pytanie nie ma dla mnie sensu ...
Anders
4
Jeśli okno Terminalu jest otwarte przed zmianą profilu, zmiany te nie zostaną odzwierciedlone w istniejącym środowisku Terminala. Szybkim rozwiązaniem jest po prostu otwarcie nowego okna terminala. To wszystko. Każde nowe okno będzie miało wszystko w ustawionym .profile. Zawsze. Aby naprawić stare, już otwarte okna, wpisz „. .Profile” 2 kropki, 1 spacja między nimi. Komenda „set” służy do ustawiania zmiennych środowiskowych, które umierają po zakończeniu sesji, w której je ustawiłeś. Użycie „set” bez argumentów wyświetla listę aktualnie ustawionych zmiennych.
tokkov
1
Ahhh, widzę zamieszanie, które stworzyłem. Jeśli nie masz otwartych okien terminali, każde nowe okno załaduje plik .profile, gdy jest otwarty i nie musisz nic robić. Jeśli z drugiej strony edytowałeś .profile w oknie terminala lub miałeś wcześniej otwarte okna terminala i chciałeś w nich wprowadzić zmiany, musisz po prostu wpisać, . .profileaby je załadować.
tokkov
2
Nie mogę sprawić, żeby działało. Dodałem plik .bash_profile w / Users / Anders, z linią eksportu AXF_DIR = / Applications / Antenna / AHFormatterV53, ale proces ant nadal nie znajduje zmiennej AXF_DIR ... Próbowałem też ustawić polecenie w Terminalu, i otrzymałem wiele informacji, ale nic o tej zmiennej. Zauważ, że zrestartowałem również system, żeby się upewnić, i otworzyłem także nowe okno Terminalu ...
Anders
2
Spróbuj nazwać to po prostu .profile. Właśnie zerknąłem na maszynę, którą niedawno kupiłem i wydaje się, że używają .profiletych dni, a nie.bash_profile
tokkov
77

Oto nieco więcej informacji dotyczących konkretnie zmiennej PATH w Lion OS 10.7.x:

Jeśli musisz ustawić PATH globalnie, PATH jest budowany przez system w następującej kolejności:

  1. Analiza zawartości pliku /private/etc/paths, jedna ścieżka na wiersz
  2. Analiza zawartości folderu /private/etc/paths.d. Każdy plik w tym folderze może zawierać wiele ścieżek, po jednej ścieżce w wierszu. Kolejność ładowania jest określana najpierw na podstawie nazwy pliku, a następnie kolejności wierszy w pliku.
  3. setenv PATHOświadczenie w /private/etc/launchd.conf, którym będzie dołączyć tę ścieżkę do ścieżki już zbudowany w # 1 i # 2 (nie wolno używać $ PATH, aby odwoływać się do zmiennej PATH, który został zbudowany do tej pory). Ale ustawienie PATH tutaj jest zupełnie niepotrzebne, biorąc pod uwagę dwie pozostałe opcje, chociaż jest to miejsce, w którym można ustawić inne globalne zmienne środowiskowe dla wszystkich użytkowników.

Te ścieżki i zmienne są dziedziczone przez wszystkich użytkowników i aplikacje, więc są naprawdę globalne - wylogowanie i zalogowanie się nie zresetuje tych ścieżek - są one zbudowane dla systemu i tworzone, zanim jakikolwiek użytkownik będzie miał możliwość zalogowania się, więc zmiany w nich wymagają ponownego uruchomienia systemu, aby zastosować.

BTW, czysta instalacja systemu operacyjnego 10.7.x Lion nie ma tego environment.plist, co mogę znaleźć, więc może działać, ale może być również przestarzała.

jonphipps
źródło
1
Tak, wielkie dzięki! Jest to nieco bardziej zaangażowane niż zwykły plik .profile.
Felixyz
2
Jeśli używasz ścieżki paths.d i masz ścieżkę zawierającą foldery zawierające spacje, po prostu pozostaw je bez zmian. jeśli spróbujesz uciec przed nimi (myślę, że jest to powszechna praktyka?), to nie zadziała (przynajmniej dla mnie). czytam to tutaj: sweeting.org/mark/blog/2008/05/26/… (szukaj „spacji”). Mam nadzieję, że pomoże to każdemu innemu!
Michael Trouw
1
@MichaelTrouw Twój komentarz pomógł mi tonę! Dodałem ucieczki do miejsc, ale nie było to wymagane!
Korzystam z
@jon, czym się paths.dróżni paths? Czy pierwsze z nich zastępuje drugie?
Pacerier
53
echo $PATH

wypisuje bieżącą wartość ścieżki

Następnie zrób vim ~/.bash_profilei napisz

export PATH=$PATH:/new/path/to/be/added

dołączasz do starej ścieżki, więc zachowuje starą ścieżkę i dodaje do niej nową ścieżkę

to zrób

source ~/.bash_profile

spowoduje to wykonanie i dodanie ścieżki

następnie ponownie sprawdź za pomocą

echo $PATH
uczeń_19
źródło
2
poleceniem „vim” powinno być vim ~ / .bash_profile Próbowałem edytować post, ale SO mówi mi, że zmiany muszą mieć 6 znaków: /
Jason Polites
31

Niestety żadna z tych odpowiedzi nie rozwiązała konkretnego problemu, jaki miałem.

Oto proste rozwiązanie bez bałaganu bash. W moim przypadku zaczynało gradledziałać Android Studio.

Przy okazji, te kroki dotyczą OSX (Mountain Lion 10.8.5)

  • Otwórz terminal.
  • Uruchom następujące polecenie:

    sudo nano /etc/paths(lub sudo vim /etc/pathsvim)

    nano

  • Przejdź na koniec pliku i wprowadź ścieżkę, którą chcesz dodać.
  • Naciśnij Control-x, aby wyjść.
  • Wpisz „Y”, aby zapisać zmodyfikowany bufor.
  • Otwórz nowe okno terminala, a następnie wpisz:

    echo $PATH

Powinieneś zobaczyć nową ścieżkę dołączoną na końcu ŚCIEŻKI

Otrzymałem te szczegóły z tego postu:

http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q

Mam nadzieję, że to może pomóc komuś innemu

przewodowy00
źródło
Po 3 godzinach próbowania zrozumienia i dokonania eksportu cokolwiek działa, spróbowałem tego i zadziałało. Brakuje jednego kroku. Dodam to.
1,21 gigawatów
@ 1.21gigawatts ahh świetnie, cieszę się, że to pomogło, dzięki za edycję
przewodowy00
1
Aktualizacja: Działa, ale po edycji będzie musiał ponownie uruchomić system.
Anant Simran Singh
idealne rozwiązanie!
Jayant Varshney
Idealny dla MacOS 10.12.X
Camille G.
23

Uproszczone objaśnienie

To post / pytanie jest trochę stare, więc odpowiem na uproszczoną wersję dla użytkowników OS X Lion. Domyślnie OSX Lion nie ma żadnego z następujących plików:

  • ~ / .bashrc
  • ~ / .bash_profile
  • ~ / .profile

Co najwyżej, jeśli zrobiłeś cokolwiek w terminalu, możesz zobaczyć ~ / .bash_history

Co to znaczy

Musisz utworzyć plik, aby ustawić domyślne komendy bash (zwykle w ~ / .bashrc). Aby to zrobić, użyj dowolnego edytora, choć łatwiej jest to zrobić w terminalu:

  1. %> emacs .profile
  2. [z typu w / in emacs:] source ~/.bashrc
  3. [z typu w / in emacs:] Ctrl + x Ctrl + s(aby zapisać plik)
  4. [z typu w / in emacs:] Ctrl + x Ctrl + c(aby zamknąć emacsa)
  5. %> emacs .bashrc
  6. [z w / in emacs wpisz / wklej wszystkie polecenia bash, zapisz i wyjdź]

Następnym razem, gdy wyjdziesz i przeładujesz terminal, powinien załadować wszystkie twoje preferencje bash. Na ogół dobrze jest rozdzielić polecenia na przydatne nazwy plików. Na przykład z poziomu ~ / .bashrc powinieneś mieć a source ~/.bash_aliasesi umieścić wszystkie swoje aliasy w ~ / .bash_aliases.

vol7ron
źródło
Dlaczego to usunęli?
Pacerier
@Pacerier Nie jestem pewien, czy je usunęli, ale bez dostosowań te pliki nie są konieczne. Problem polega na tym, że dla każdego, kto jest nowy w terminalu / powłoce, OSX lub BSD, pliki te nie są oczywiste, a zatem trudniejsze do zdobycia.
vol7ron,
Czym więc go zastąpili?
Pacerier
Są opcjonalne, więc niczego nie zastąpili; jest to plik RC
vol7ron,
18

Dla mnie zadziałało stworzenie .launchd.confpotrzebnych zmiennych:

setenv FOO barbaz

Ten plik jest odczytywany przez uruchomienie przy logowaniu. Możesz dodać zmienną „w locie” do uruchomionego uruchomionego, używając:

launchctl setenv FOO barbaz`

W rzeczywistości .launchd.condzawiera po prostu polecenia launchctl.

Zmienne ustawione w ten sposób wydają się być poprawnie obecne w aplikacjach GUI.

Jeśli próbujesz w ten sposób ustawić zmienne LANG lub LC_ i używasz iTerm2, upewnij się, że wyłączyłeś ustawienie „Ustaw automatycznie zmienne regionalne” na karcie Terminal używanego profilu. Wydaje się, że to zastępuje zmienne środowiskowe uruchomionego programu, aw moim przypadku ustawienie uszkodzonego LC_CTYPE powodowało problemy na zdalnych serwerach (które przeszły przez zmienną).

(Wygląda na to, że environment.plist nadal działa na moim Lionie. Możesz użyć panelu preferencji RCenvironment do utrzymania pliku zamiast ręcznej edycji lub wymaganego Xcode. Nadal działa na Lionie, chociaż ostatnia aktualizacja pochodzi od Snow Leoparda era. Czyni to moją osobiście preferowaną metodę).

Gilimanjaro
źródło
Zdecydowanie najłatwiejsza odpowiedź. Pamiętaj, że musisz całkowicie zamknąć aplikację terminalu i otworzyć ją ponownie, aby zmiany odniosły skutek - a nie tylko zamknąć okno jednego terminalu.
Timmmm
1
Ta odpowiedź jest zbyt uproszczona, aby można ją było wykorzystać w OP. Utwórz jak? Stwórz gdzie?
HenryRootTwo
15

Skonfiguruj zmienną środowiskową PATH w systemie Mac OS

Otwórz program Terminal (domyślnie znajduje się w folderze Aplikacje / Utilites). Uruchom następujące polecenie

touch ~/.bash_profile; open ~/.bash_profile

Spowoduje to otwarcie pliku w domyślnym edytorze tekstu.

Dla ANDROID SDK jako przykład:

Musisz dodać ścieżkę do katalogu narzędzi i narzędzi platformy Android SDK. W moim przykładzie użyję „/ Development / android-sdk-macosx” jako katalogu, w którym jest zainstalowany zestaw SDK. Dodaj następujący wiersz:

export PATH=${PATH}:/Development/android-sdk-macosx/platform-tools:/Development/android-sdk-macosx/tools

Zapisz plik i zamknij edytor tekstu. Wykonaj swój .bash_profile, aby zaktualizować ŚCIEŻKĘ.

source ~/.bash_profile

Teraz za każdym razem, gdy otworzysz program Terminal, ŚCIEŻKA będzie zawierać Android SDK.

Charaf JRA
źródło
Dzięki. Nie wiem dlaczego, ale tylko to rozwiązanie działało dla mnie, a nie powyższe.
kroky
Dodałem zmienną środowiskową, jak powiedziałeś, ale nie mogę jej użyć w xcode, masz pomysł? Muszę go użyć w ścieżce wyszukiwania nagłówka. Z góry dziękuję.
Yucel Bayram
11

Dodawanie zmiennych ścieżki do OS X Lion

To było całkiem proste i działało dla mnie w terminalu:

$echo "export PATH=$PATH:/path/to/whatever" >> .bash_profile #replace "/path/to/whatever" with the location of what you want to add to your bash profile, i.e: $ echo "export PATH=$PATH:/usr/local/Cellar/nginx/1.0.12/sbin" >> .bash_profile 
$. .bash_profile #restart your bash shell

Podobna odpowiedź była tutaj: http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516

Yaw Joseph Etse
źródło
1
Warto zauważyć, że musisz uruchomić to z katalogu głównego katalogu domowego. Upewnij się, że tam jesteś, wydając cdbez argumentów lub cd ~/.
efmith
3
Nie ma również potrzeby ponownego uruchamiania powłoki. Zastosowanie source .bash_profile.
efmith
Podoba mi się ta metoda, ponieważ jest krótka. Ale to nie działa. Zrobiłem echo "export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin/mysql" >> .bash_profileWtedy jedyne, co mogę zrobić, mysql -u root -pto czy już mam root. Podczas gdy mogę używać Applications/XAMPP/xamppfiles/bin/mysql -u root -pwszędzie. Próbowałem obu wspomnianych metod ponownego uruchomienia: Yaw i @ ephsmith's.
kasavbere
Ponadto, jeśli użyję echa $ PATH jako root (tj. Sudo su), dostanę /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/XAMPP/xamppfiles/bin. Kiedy nie jestem rootem, dostaję/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
kasavbere
$PATHZmienna jest dany użytkownik (root jest użytkownikiem).
efmith
7

Otwarty terminal:

vi ~/.bash_profile

Zastosuj zmianę w systemie (nie trzeba ponownie uruchamiać komputera):

source ~/.bash_profile

(Działa również z macOS Sierra 10.12.1)

Do Nhu Vy
źródło
5

Miałem problem z Eclipse (uruchamiany jako GUI, a nie ze skryptu) na Maverics, że nie pobierał on niestandardowej ścieżki. Próbowałem wszystkich wyżej wymienionych metod, ale bezskutecznie. W końcu znalazłem najprostszą działającą odpowiedź na podstawie podpowiedzi stąd :

  1. Przejdź do folderu /Applications/eclipse/Eclipse.app/Contents

  2. Edytuj plik Info.plist za pomocą edytora tekstu (lub XCode), dodaj słownik LSEnvironment dla zmiennej środowiskowej z pełną ścieżką . Pamiętaj, że obejmuje to także / usr / bin itp .:

    <dict>
      <key>LSEnvironment</key>
      <dict>
            <key>PATH</key>
            <string>/usr/bin:/bin:/usr/sbin:/sbin:/dev/android-ndk-r9b</string>
      </dict>
      <key>CFBundleDisplayName</key>
      <string>Eclipse</string>
      ...
    
  3. Załaduj ponownie parametry aplikacji za pomocą

    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.fra‌​mework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
    
  4. Uruchom ponownie Eclipse

JaakL
źródło
5

Pozwól, że zilustruję cię moim osobistym przykładem w bardzo zbędny sposób.

  1. Najpierw po zainstalowaniu JDK, upewnij się, że jest zainstalowany. wprowadź opis zdjęcia tutaj
  2. Czasami macOS lub Linux automatycznie ustawia dla ciebie zmienną środowiskową w przeciwieństwie do Windows. Ale nie zawsze tak jest. Sprawdźmy to. wprowadź opis zdjęcia tutaj Linia bezpośrednio po echu $ JAVA_HOME byłaby pusta, jeśli zmienna środowiskowa nie jest ustawiona. W twoim przypadku musi być pusty.

  3. Teraz musimy sprawdzić, czy mamy plik bash_profile. wprowadź opis zdjęcia tutaj Widziałeś, że w moim przypadku mamy już profil bash. Jeśli nie, musimy utworzyć plik bash_profile.

  4. Utwórz plik bash_profile. wprowadź opis zdjęcia tutaj

  5. Sprawdź ponownie, aby upewnić się, że plik bash_profile tam jest. wprowadź opis zdjęcia tutaj

  6. Teraz otwórzmy plik bash_profile. macOS otwiera go za pomocą domyślnego programu TextEdit. wprowadź opis zdjęcia tutaj

  7. To jest plik, w którym przechowywane są zmienne środowiskowe. Jeśli otworzyłeś nowy plik bash_profile, musi on być pusty. W moim przypadku było już ustawione dla języka programowania Python i dystrybucji Anaconda. Teraz muszę dodać zmienną środowiskową dla Javy, która właśnie dodaje pierwszą linię. MUSISZ Wpisać pierwszą linię VERBATIM. PO PROSTU pierwsza linia. Zapisz i zamknij TextEdit. Następnie zamknij terminal. wprowadź opis zdjęcia tutaj

  8. Otwórz terminal ponownie. Sprawdźmy, czy zmienna środowiskowa jest skonfigurowana. wprowadź opis zdjęcia tutaj

Sumit Pokhrel
źródło
4

Pojechałem idiotyczną drogą. Dodano je na końcu pliku / etc / profile

for environment in `find /etc/environments.d -type f`
do
     . $environment
done

utworzyłem folder / etc / environment utwórz w nim plik o nazwie „oracle” lub „cokolwiek” i dodałem do niego rzeczy, które potrzebowałem ustawić globalnie.

/ etc $ cat /etc/environments.d/Oracle

export PATH=$PATH:/Library/Oracle/instantclient_11_2
export DYLD_LIBRARY_PATH=/Library/Oracle/instantclient_11_2
export SQLPATH=/Library/Oracle/instantclient_11_2
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export TNS_ADMIN=/Library/Oracle/instantclient_11_2/network/admin
Rab w Katy
źródło
1

Więcej szczegółów, które mogą być pomocne dla kogoś:

Dzięki własnym badaniom wiem teraz, jak ustawić zmienne środowiskowe na 7 z 8 różnych sposobów. Próbowałem przekonać envar do aplikacji, którą rozwijam pod Xcode. Ustawiam envary „tracer” za pomocą tych różnych metod, aby powiedzieć mi, które z nich wchodzą w zakres mojej aplikacji. Z dołu widać, że edycja „schematu” w Xcode w celu dodania argumentów działa, podobnie jak „putenv”. Co nie ustawiło tego w tym zakresie: ~ / .MACOS / environment.plist, plist specyficzny dla aplikacji, .profile i dodanie fazy kompilacji w celu uruchomienia skryptu niestandardowego (znalazłem inny sposób w Xcode [przynajmniej], aby ustawić jeden, ale zapomniał tego, co nazwałem znacznikiem i nie mogę go teraz znaleźć; może jest na innej maszynie ....)

GPU_DUMP_DEVICE_KERNEL to 3

GPU_DUMP_TRK_ENVPLIST ma wartość (null)

GPU_DUMP_TRK_APPPLIST ma wartość (null)

GPU_DUMP_TRK_DOTPROFILE ma wartość (null)

GPU_DUMP_TRK_RUNSCRIPT jest (null)

GPU_DUMP_TRK_SCHARGS to 1

GPU_DUMP_TRK_PUTENV to 1

... z drugiej strony, jeśli wejdę do terminalu i powiem „ustaw”, wydaje się, że jedyne, co dostaje, to ten z profilu .profile (pomyślałbym, że podbije także środowisko.pl. i jestem na pewno raz widziałem drugą envarę do śledzenia w Terminalu, więc od tamtej pory coś chyba się nie zgadza. Długi dzień ....)

Fotorelacja
źródło
0

Krok 1: otwórz ~/.bash_profile

Teraz otwiera się edytor tekstu:

Krok 2: nazwa zmiennej powinna być pisana wielkimi literami. w tym przykładzie zmienna toNODE_ENV

Krok 3: export NODE_ENV=development

Zapisz i zamknij.

Uruchom ponownie system.

Gotowy.

Aby sprawdzić zmienną env: otwórz terminal i wpisz

echo $NODE_ENV 
Navya
źródło
0

Zaleca się sprawdzenie domyślnej powłoki terminala przed ustawieniem zmiennych środowiskowych za pomocą następujących poleceń:

$ echo $SHELL
/bin/zsh

Jeśli domyślnym terminalem jest / bin / zsh (Z Shell), jak w moim przypadku (Osobiście wolę Z Shell), powinieneś ustawić te zmienne środowiskowe w pliku ~ / .zshenv z następującą zawartością (W tym przykładzie ustawiam zmienną środowiskową JAVA_HOME , ale to samo dotyczy innych):

export JAVA_HOME="$(/usr/libexec/java_home)"

Podobnie, każdy inny typ terminala niewymieniony powyżej, powinieneś ustawić zmienną środowiskową w odpowiednim pliku env terminala.

Jerry Chong
źródło