Jakie są właściwe miejsca dla:
- Globalne zmienne środowiskowe przeznaczone dla wszystkich użytkowników?
- Zmienne środowiskowe specyficzne dla użytkownika?
Jakie są właściwe miejsca dla:
Myślę, że strona wiki społeczności na temat zmiennych środowiskowych pomoże ci uporządkować
Aby dodać do odpowiedzi sagarchalise, mogę podsumować to, co sugeruje link, jako odpowiednie miejsce dla ustawień.
W przypadku ustawień globalnych zmienne środowiskowe dla całego systemu
/etc/environment
/etc/profile
lub/etc/bash.bashrc
Ze strony:
Korzystanie
/etc/profile
jest bardzo uniksowym sposobem, ale jego funkcjonalność jest znacznie zmniejszona w Ubuntu. Istnieje tylko po to, aby wskazywać/etc/bash.bashrc
i zbierać wpisy/etc/profile.d
.W moim systemie jedynym interesującym wpisem w profilu.d jest
/etc/profile.d/bash_completion.sh
.Dla ustawień lokalnych lub dla poszczególnych użytkowników
Zalecana była poprzednia wersja strony Ubuntu
~/.pam_environment
, ale obecnie strona sugeruje, że jeśli to nie zadziała, powinieneś użyć~/.bash_profile
lub~./bash_login
- Jeśli jeden z nich istnieje, bash wykonuje go zamiast~/.profile
kiedy bash jest uruchamiany jako powłoka logowania. Bash wolą~/.bash_profile
się~/.bash_login
. [...] Te pliki domyślnie nie będą miały wpływu na sesję graficzną. ”~/.bashrc
- „... może być najłatwiejszym miejscem do ustawiania zmiennych”.źródło
/etc/environment
i kiedy? Wydaje się, że nie działa z cronem, nawet gdy używaszSHELL=/bin/bash
/etc/environment
polubićJAVA_HOME="/opt/java"
iANT_HOME="/opt/ant"
jak to zrobićMasz:
które działają w Lucid i Maverick
jeśli jest obecny i jeśli powłoka użytkownika jest bash:
W środowisku użytkownika istnieje myląca tablica specyficzna dla powłoki i tego, czy jest ona uważana za „powłokę logowania”. Jeśli powłoka jest bash:
dla sh / dash:
dla Zsh nawet nie spróbuję tego zrozumieć .
źródło
Zgodnie z zaleceniami na https://help.ubuntu.com/community/EnvironmentVariables :
Globalne zmienne środowiskowe, które mają wpływać na wszystkich użytkowników, powinny wejść
/etc/environment
.Należy ustawić zmienne środowiskowe specyficzne dla użytkownika
~/.pam_environment
.Unikaj plików profilu i rc, aby ustawić zmienne środowiskowe w Ubuntu. Sprawili mi więcej bólów głowy, niż są tego warte.
Łatwiej to jednak powiedzieć niż zrobić;)
Możliwe, że napotkasz tę samą lukę konfiguracyjną, która istniała dla mnie. Zobacz obejście dla zaszyfrowanego domu poniżej.
Mój
~/.pam_environment
:Dlaczego brzydka ścieżka statyczna?
${PATH}
nie zadziałałoby dla mnie. Zablokowałem swój login kilka razy, próbując go obejść, więc trzymam się brzydkiej statycznej kopii ustawień domyślnych :)Obejście dla zaszyfrowanych folderów domowych
W wersjach Ubuntu do wersji Precise 12.04 Beta 2 włącznie, jeśli używasz zaszyfrowanego katalogu domowego, musisz go zmodyfikować,
/etc/pam.d/common-session
aby go załadować~/.pam_environment
. To rozwiązanie najwyraźniej działa we wcześniejszych wersjach, ale go nie testowałem.Guenther Montag (g-montag) napisał 19.08.2010:
Na podstawie mojej odpowiedzi na Super User: https://superuser.com/a/408373/66856
źródło
${HOME}
nie będzie działać. Brak rozszerzenia w.pam_environment
..pam_environment
, aleHOME
zwykle nie jest ustawione tak wcześnie. Gdyby ten wiersz był przeczytanyDEFAULT=${PATH}/Applications/jdk
, zobaczyłbyś wartośćPATH
wstawionej do niego.