환경 변수 * in * / etc / environment?


19

최근에 /etc/environment스크립트보다 간단한 환경 변수를 설정하는 더 표준적인 방법 인을 발견 했지만 / etc / environment 파일에서 환경 변수를 역 참조하는 방법이 있는지 궁금했습니다.

즉, 나는 이것을 가지고있다 :

JAVA_HOME="/tools/java"
GRAILS_HOME="/tools/grails"
GROOVY_HOME="/tools/groovy"
GRADLE_HOME="/tools/gradle"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

$JAVA_HOME/bin그러나 PATH 정의 에 추가하려고 하면 보간 변수가 아닌 $ JAVA_HOME / bin이 나타납니다. 이 문제를 해결하기 위해 profile.d에 environment.sh를 작성 /bin하여 경로에 항목을 추가하고 있지만 조잡하고 구성이 잘못된 것 같습니다.

/ etc / environment에서 환경 변수를 역 참조하는 방법이 있습니까?

답변:


13

/etc/environment파일을 읽 pam_envPAM 모듈 . 오른쪽 키를 대체하지 않고 간단한 키-값 쌍만 지원합니다.

대체 또는 다른 쉘 확장으로 값을 빌드하려면 쉘을 거쳐야합니다. /etc/profile(또는의 파일 /etc/profile.d)이 이들에게 적합한 장소입니다. 이것은 전통적인 장소 /etc/environment이며 (유닉스 시스템의 역사에서 비교적 최근의 혁신 임), 그것을 사용하는 것에 대해 분명한 것은 없습니다. 주요 이점은 /etc/environment쉘이 포함되지 않은 로그인 방법이나 Bourne 이외의 쉘을 사용하는 사용자의 경우에도 환경 변수를 설정할 수 있다는 점이지만 실제로는 일반적이지 않습니다.


대체하지 않으면의 중복이 많이 발생합니다.에 /etc/environment의지 해 /etc/profile주셔서 감사합니다.
SAFX

2

우분투 문서는 이것을 불가능하게 만듭니다. 그러나 대답이 있습니다.

답변 : 시스템 전체에 지속적인 시스템 환경 변수 생성/etc/.bashrc

JAVA_HOME="/tools/java"
...
PATH="$JAVA_HOME:$PATH"  

세부 사항 :
다음은 환경 변수 문서의 세부 사항입니다 .
공식 권장 사항은 /etc/environment시도한대로을 사용하는 것입니다. 문제는이 파일이 스크립트 파일이 아니라는 것입니다. 즉, 변수 선언에 변수를 사용할 수 없습니다.

이 문서는 2 개의 다른 "권장되지 않음"파일
/etc/profile과으로 계속 진행됩니다 /etc/bash.bashrc.

/etc/profile"/etc/bash.bashrc 파일을 호출하는 것 이상을 수행하지 않습니다". 대신에

/etc/bash.bashrc "우분투는 기본적으로 사용자가 셸이나 데스크탑 환경에 들어갈 때마다이 파일을 실행하도록 구성되어 있습니다."


일부 Ubuntu 개발자와상의하여 EnvironmentVariables 를 업데이트 했으므로 "권장되지 않은"문은 더 이상 존재하지 않습니다.
Gunnar Hjalmarsson '11

"사용자가 쉘에 들어갈 때마다". 쉘을 입력 할 사용자가없는 경우 어떻게해야합니까? 시작시 소프트웨어를 실행하는 자동화 된 사용자를위한 환경 변수가 필요합니다. 예를 들어 6 줄의 프록시 구성 만 있습니다. 어떻게해야합니까?
EIS
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.