Jak ustawić zmienne środowiskowe w systemie OS X?

69

Zawsze trudności ustawienie zmiennych środowiskowych w OS X, jak JAVA_HOME, M2_HOMElub PATH. Jak ustawić je w systemie OS X Mavericks?

Przeprowadziłem badania, ale odpowiedzi, które znalazłem, jeszcze mi nie pomogły:

  1. export JAVA_HOME=/... (Wygląda jednak na to, że zmiany są tymczasowe, tylko na jedną sesję terminalową).
  2. setenv JAVA_HOME=/... (Ale polecenie nie zostało znalezione.)
  3. Otwórz .profilei zapisz zmienne wewnątrz, aby zmiany były trwałe - ( .profilenie istnieje).
  4. Otwórz .bash_profilei zapisz zmienne wewnątrz, aby zmiany były trwałe - ( .bash_profilenie istnieje).
  5. vi ~/.bash_profile(Całkiem wyzwanie dla kogoś, kto nie wie vi.)
  6. Tworzenie własnego enrivonment.plistpliku.

Czy ktoś może poprowadzić mnie przez kroki, aby uruchomić to na OS X Mavericks, zakładając, że nie ma wiedzy na temat Uniksa?

akcasoy
źródło
1
Uniks (i każdy inny system operacyjny) może być trudny dla nowych użytkowników, więc mogę zrozumieć twoją frustrację. Niemniej jednak pytanie w formie pisemnej jest dość szerokie i nie przyniesie odpowiedzi, których szukasz. Czy możesz przepisać go tak, aby skupił się na problemie, który faktycznie masz (np. „Jak ustawić JAVA_HOME i PATH na Mavericks”), które zapewnią ci dobre odpowiedzi, na których możesz się oprzeć?
nohillside
Jak widzę, Stuffe zredagowało już moje pytanie. Dzięki Moje pytanie jest jak tytuł mówi, jak ustawić JAVA_HOME i PATH na Mavericks.
akcasoy,
@patrix: Następnym razem wyjaśnię ci mój problem lub o co chcę zapytać, a ty napiszesz MOJE PYTANIA SWOIMI SŁOWAMI. DOBRZE? Wygląda na to, że wy, moderatorzy, jesteście bardzo zadowoleni z tego.
akcasoy

Odpowiedzi:

44

Mam .profile w moim katalogu domowym; zawiera wiele export …instrukcji dla zmiennych środowiskowych.

Możesz utworzyć taki plik, otwierając Terminal i wydając polecenie touch .profile Zamknij Terminal.

Następnie powinieneś otworzyć ten plik w edytorze zwykłego tekstu (na przykład TextWrangler). Możesz także użyć nano .profilew oknie terminala (bieżący katalog powinien być twoim domem), co jest znacznie łatwiejsze niż vi. Wstaw wiersze, takie jak export JAVA_HOME=…. Zapisz, wyjdź, nanojeśli go użyłeś i zamknij działający terminal.

Otwórz Terminal i wydaj polecenie, envaby zobaczyć wszystkie zmienne środowiskowe. Sprawdź, czy te, które zdefiniowałeś, mają przypisaną im wartość. Powinieneś już iść. Ale nie zapominaj, że zmienne środowiskowe zdefiniowane w .profilenie są przekazywane do aplikacji GUI.

Bhas
źródło
Dziękuję Ci bardzo. Tego naprawdę szukałem. Teraz ustawiłem wszystkie moje zmienne. Co rozumiesz przez aplikacje GUI? Potrzebowałem tylko kilku zmiennych dla java i maven, aby móc pracować z narzędziami Eclipse, Spring, itp. Eclipse to aplikacja z graficznym interfejsem użytkownika. Czy masz na myśli to przez GUI?
akcasoy
Dobrze. Przeczytałem kilka i myślę, że masz na myśli naprawdę GUI z GUI .. Czy istnieje sposób, aby udostępnić te zmienne wszędzie? Jaki jest najczęstszy sposób lub gdzie jest najczęstsza lokalizacja do ich zdefiniowania?
akcasoy,
1. tak, mam na myśli aplikację GUI. 2. Ustawienie zmiennych środowiskowych dla aplikacji GUI w OS X 10.8 wydaje się być dość trudne. Niektóre aplikacje umożliwiają definiowanie zmiennych środowiskowych, które mają być przekazywane na przykład do innych aplikacji. Możesz także użyć tej open -a Appnamemetody w sesji terminalu.
Bhas
4
Nie wiem dlaczego, ale dla mnie (OS X Yosemite 10.10.1) .profileto nie pomogło. Musiałem umieścić exportoświadczenia w, .bash_profileaby działało. Mam nadzieję, że pomoże to komuś innemu, jeśli
napotka
22

W Yosemite powinieneś umieścić w export VARIABLE='something'środku .bash_profile.

Próbowałem pisać export VARIABLE='something'wnętrze .profilebez powodzenia.

Rafael Eyng
źródło
W rzeczy samej. .profile działa tylko wtedy, gdy wykonasz go ręcznie. source .profile Po ponownym uruchomieniu plik .profile nie jest ładowany. Plik .bash_profile to.
KC
nie bardzo poprawne.
Koray Tugay
2
@KorayTugay Czy możesz wskazać, co jest nie tak, a może to naprawić?
Rafael Eyng
7

Dla tych, którzy nie lubią kłopotów z plikami tekstowymi i edytorami, w GitHub dostępne jest również narzędzie GUI .

mkraemerx
źródło
Wspaniały ! Spędziłem cały dzień zastanawiając się nad rozwiązaniem problemu zmiennej środowiskowej i nie było mnie nigdzie. Aplikacja, którą opublikowałeś, rozwiązała wszystkie moje problemy środowiskowe
Shajo
5

Aby dodać katalog do ścieżki, istnieje lepsza opcja w OS X: Wszystkie wpisy w pliku / etc / paths są dodawane do ścieżki przed uruchomieniem jakiejkolwiek powłoki.

Edytuj ten plik za pomocą:

sudo pico /etc/paths

Aby uzyskać więcej informacji, zobacz: https://gist.github.com/Overbryd/1669348

Bjinse
źródło
Dziękuję Ci! dla mnie jest to najbardziej elegancki sposób na włączenie nowej ścieżki
Asimov
4

OSX ma tylko jedną zmienną dotyczącą zmiennych środowiskowych i to było w Lionie, gdzie ~ / .MacOSX / environment.plist został usunięty. Chociaż nastąpiła również zmiana domyślnej powłoki w 10.2 lub 10.3 z tsch na bash.

Musisz zdefiniować, dla czego chcesz ustawić zmienną środowiskową i jakie masz środowisko.

Musisz także zrozumieć powłoki i Uniksa, których w swoich komentarzach jeszcze nie zrobiłeś. Wokół jest kilka samouczków nbash.

Co do twoich punktów

  1. Rozumiesz poprawnie, zakładając, że jesteś w powłoce typu sh (np. Bash lub zsh)
  2. Dotyczy to powłok C, np. Tcsh, więc nie będzie działać na ostatnich ustawieniach domyślnych.
  3. Musisz utworzyć .profile, to zadziała
  4. Jest to plik .bash_profile lub lepszy .bashrc i musisz najpierw utworzyć plik
  5. Całkowicie poprawne :) Użyj TextEdit lub nano (lub emacs)
  6. Popraw do OSX 10.7 i wy, aby to zrobić dla programów wywoływanych z Workspace np. Z Docka lub Findera (lub otwartego)

Tak więc 3 lub 4 działają, jeśli wywołujesz program z wiersza poleceń (lub z programu uruchomionego w wierszu polecenia, ale nie przez otwarcie)

Jeśli chodzi o programy z GUI, zobacz to pytanie

Jeśli chodzi o internet jest pełen śmieci - musisz mieć wystarczającą wiedzę, aby zrozumieć artykuł, ponieważ jak odkryłeś, wiele osób zakłada lub jest niepoprawnych. Witryny StackExhnage powinny być lepsze, ponieważ można sprawdzić, czy na podstawie liczby głosów uzgodniono odpowiedź.

użytkownik151019
źródło
Nadal nie mam żadnego rezultatu. Połączone pytanie nie prowadzi mnie do rozwiązania. Mam Maca od 4 lat, ale wciąż nie mam (nie musiałem) doświadczenia na temat UNIX. Myślę, że kiedy odpowiedź „Dlaczego to tak cholernie trudne?” to „usunięto plist, zmieniono na 10.2 lub 10.3, powłokę typu sh, do 10.7 itd.” odpowiedź jest sprzeczna z samym sobą.
akcasoy
Można to zrobić bardzo łatwo, jak w systemie Windows. W każdym razie… tak naprawdę oczekiwałem czegoś. w ten sposób: 1 - otwórz katalog domowy 2 - otwórz terminal 3 - napisz „xxx”, 4 kliknięcia, zapisz itp. .. nie można mieć wystarczającego tła, aby ustawić prostą zmienną, przynajmniej można znaleźć właściwe rozwiązanie na podstawie tych odpowiedzi internet.
akcasoy
Jeśli potrzebujesz zmiennych środowiskowych, musisz zrozumieć, co robią, a to wymaga tła. Ponieważ nie podałeś, do czego używasz zmiennych, muszę podać wszystkie możliwe różnice. Uwaga dotycząca ustawienia Java JAVA_HOME niekoniecznie jest najlepszym sposobem (patrz pytania Java)
user151019,
Moje pytanie dotyczyło USTAWIENIA zmiennych. Ani o tym, co robią, ani o żadnej innej rzeczy, która wymaga więcej informacji. Możesz oczywiście ustawić je nawet bez tła. Dziękuję za odpowiedź. Ale jak już napisałem, wystarczyła prosta propozycja rozwiązania, którą już mam dzięki Bhasowi.
akcasoy
Naprawdę nie powinieneś ustawiać zmiennych bez tła, musisz wiedzieć, co robią
user151019,
3

Jeśli używasz tak zshjak ja, musisz zmodyfikować ~/.zshrc.

shellbye
źródło
Lub w.zprofile
harmonogramofly