Rozumiem, że ten pierwszy jest ładowany przed drugim, ale jaka jest różnica koncepcyjna? Czy są jakieś dobre powody, dla których powinienem ustawić niektóre zmienne w jednej, a nie w drugiej? Z wyjątkiem faktu, że /etc/environment
wydaje się , że istnieje konfiguracja środowiska dla wszystkich procesów uruchamianych przez system, podczas gdy /etc/profile
konfiguracja środowiska wykorzystywanego i propagowanego z powłoki logowania, prawda?
Na marginesie, który program tradycyjnie czyta /etc/environment
? Czy to jest związane z POSIX, czy tylko konwencją?
VAR=value
zadziałało w powłoce (po ponownym zalogowaniu)./etc/environment
nie jest częścią POSIX, należy do PAM (Pluggable Authentication Module) i tylko programy skompilowane z obsługą PAM mogą z niego korzystać (głównie systemy logowania, które następnie uruchamiają powłokę lub środowisko użytkownika). Oznacza to, że nie jest nawet odczytywany przez powłokę.Możesz zobaczyć programy korzystające
/etc/environment
zgrep -l pam_env /etc/pam.d/*
./etc/environment
Służy więc do ustawiania zmiennych dla programów, które zwykle nie są uruchamiane z powłoki.źródło