Zmienne środowiskowe - gdzie są przechowywane przez Linuksa, jak je zmienić i czy jest to bezpieczne?

13

Próbuję skonfigurować kompilację ze źródła starej wersji gcc na moim komputerze deweloperskim. Dokumentacja wyróżnia kilka zmiennych środowiskowych, które należy zmienić w tym celu. Zastanawiałem się, jak to zrobić, a także gdzie je przechowuje Linux i czy wymagane jest ponowne uruchomienie systemu, aby jakieś zmiany zostały zarejestrowane?

matematyk 1975
źródło
Czy możesz wymienić zmienne środowiskowe, które należy zmienić?
Hashken,

Odpowiedzi:

14

Te globalne zmienne środowiskowe w systemie są przechowywane w /etc/environment.
Wszelkie zmiany tutaj zostaną odzwierciedlone w całym systemie i wpłyną na wszystkich użytkowników systemu. Potrzebny jest także restart, aby wprowadzone tu zmiany zostały wprowadzone.

Poziom użytkownika Zmienne środowiskowe są najczęściej przechowywane w folderze domowym, .bashrca .profilepliki. Zmiany tutaj dotyczą tylko tego konkretnego użytkownika. Wystarczy zamknąć i otworzyć terminal, aby nastąpiły zmiany konfiguracji.

Edycja : Jeśli nie chcesz ponownie uruchamiać ani restartować terminala, możesz skorzystać z polecenia source.
Na przykład. source /etc/environmentlubsource .bashrc

Hashken
źródło
4
Nie potrzebujesz restartu. Możesz użyć polecenia source, aby załadować zmienne po zmianie. np .: source / etc / environment or source .bashrc
Manula Waidyanatha
W przypadku tego, co próbujesz zrobić, zmiana .profilenie jest właściwa. .bashrcnie powinien być stosowany, ponieważ może w niektórych sytuacjach powodować problemy. I /etc/environmentjest wyjście (nie zmieniaj systemu, aby wykonać jedną pracę).
ctrl-alt-delor
2

Potrzebne są lokalne zmiany czasowe. Nie będziesz ich potrzebować jutro, kiedy robisz coś innego, może to zepsuć to, co robisz jutro. Możesz jednak zapisać go jako skrypt / plik makefile do użytku jutro.

export VARIABLE=value
export VARIABLE2=another_value
gcc …

lub

VARIABLE=value VARIABLE2=another_value gcc …

Uwaga: Jeśli używasz make, pierwszy przykład nie zadziała. Make uruchamia nową powłokę (sh) dla każdej linii.

ctrl-alt-delor
źródło
1

Powinieneś umieścić swoje zmienne środowiskowe dla poszczególnych użytkowników w ~ / .pam_environment

Utwórz plik, jeśli nie istnieje. Zobacz tutaj

Jules Moules
źródło