명령이 제대로 작동하도록 특정 환경 변수를 설정하고 있습니다 pyspark
. 변수를 설정 /etc/environment
하고 가져오면 작동하지 않습니다. 그러나 명령줄에서 설정하면 작동하지만 물론 이 세션에서만 작동합니다. 내 의도는 세션을 다시 열어도 들어갈 수 있도록 전역으로 설정하는 것입니다.pyspark
/etc/environment에 설정
[root@localhost ~]# more /etc/environment
[root@localhost ~]# echo "export SPARK_HOME=/srv/spark" >> /etc/environment
[root@localhost ~]# echo "export PATH="$SPARK_HOME"/bin:"$PATH >> /etc/environment
[root@localhost ~]# echo "export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk" >> /etc/environment
[root@localhost ~]# source /etc/environment
[root@localhost ~]# pyspark --version
-bash: pyspark: command not found
명령줄에서 설정
[root@localhost ~]# export SPARK_HOME=/srv/spark
[root@localhost ~]# export PATH=$SPARK_HOME/bin:$PATH
[root@localhost ~]# export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk
[root@localhost ~]# pyspark --version
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 1.6.1
/_/
Type --help for more information.
답변1
export SPARK_HOME=...
다른 명령을 쉘의 시작 파일에 넣으십시오 . bash의 경우 이는 ~/.profile
또는 입니다 ~/.bash_profile
.
Linux에서는 /etc/environment
일반적으로 로그인 시 읽혀지며 pam_env.so
기존 변수 확장은 지원되지 않으므로 설정하면 다음과 같은 PATH=$PATH:/something
결과가 발생합니다.단어문자열 $PATH
이 에 나타납니다 PATH
. 이것은 당신이 원하는 것이 아닙니다. (예를 들어이것그리고이것, 또한 재미로이것.)
또한 셸의 전역 시작 스크립트가 해당 설정을 재정의할 수 있으므로 설정이 작동하지 않을 PATH
수 있습니다 . /etc/environment
(Debian에서는 기본적으로 실행되며, 제가 가지고 있는 이전 CentOS에서는 시작 스크립트가 맨 앞에만 있는 것 같습니다 PATH
.)
시스템에서 이를 사용하지 pam_env.so
않고 스크립트를 수동으로만 얻는 경우에는 물론 이러한 고려 사항은 중요하지 않습니다. 하지만 적어도 몇몇 Linux 배포판에서 널리 사용되는 것으로 보이므로 다른 파일 이름을 사용하는 것이 좋을 수도 있습니다.
(이것은 다른 답변과 정확히 반대이기 때문에 이전 CentOS에서 테스트했습니다.)
다음 내용을 넣었습니다 /etc/environment
.
export FOO1=bar
export FOO2=foo:$FOO
다시 로그인하면 set | grep FOO
다음이 표시됩니다.
FOO1=bar
FOO2='foo:$FOO'
답변2
이 코드 줄은 여러분이 생각하는 것과는 다릅니다.
echo "export PATH="$SPARK_HOME"/bin:"$PATH >> /etc/environment
문제는 $SPARK_HOME
평가 중에 발생합니다 echo
(있는 그대로 $PATH
; 원하지 않을 수도 있음).현재의이 파일의 경로).
cat /etc/environment
이 줄이 제대로 보이지 않는다는 것을 알게 된다면 .
대신에
echo 'export PATH="$SPARK_HOME/bin:$PATH"' >> /etc/environment
그러면 파일을 생성할 때 $SPARK_HOME
및 값이 사용됩니다.$PATH
source