2014-01-13 7 views
0

내 시스템이 자동으로 쉘에 내보내기하는 대신 내 레일 프로젝트에 사용할 환경 변수를 포함하는 파일을로드하도록하려고하는데 그냥 작동하지 않는 것 같습니다. 내가 맥 OSX 10.6env vars가로드되지 않은 파일을 포함하는 파일

을 사용하고

이 내가 다음 단계입니다.

nano .bash_profile 

export PATH=Users/Moshe/env_vars:$PATH 

touch env_vars 

nano env_vars 

DEV_DB=TestDB 
export DEV_DB 

DEV_DB_HOST=12.34.56.78 
export DEV_DB_HOST 

exit 

나는 쉘 및

printenv 

를 다시 열하지만 난 경로에 Users/Moshe/env_vars 그것을 볼 수 있습니까 나는 그러나

을 설정 바르가 표시되지 않을 때 내가 echo $PATH

전 이 대답을 보려고했는데 무엇을 잘못하고 있는지 알 수는 없다.

Setting environment variables in OS X?

+0

제거'exit' 단어, 다음 문제를 명령 줄에 스크립트를 다음과 같이 입력하십시오 :'. your_script.sh' –

+0

'exit'가 쓰여지지 않았습니다. 터미널에 그 주소를 입력 했으므로 – Moshe

+0

예를 입력하면됩니다. 이제는 을 볼 수 있습니다. 그러나 입력 할 필요없이로드 될 때 자동으로 발생하고 싶었습니다. – Moshe

답변

1

exit 키워드를 사용하지 마십시오. 어느 .bash_profile에 에 코드를 삽입, 또는 예를 your_script.sh를 들어, 특정 파일로 저장하고, 다음과 같이 .bash_profile을 에서 호출 :

. your_script.sh 
1

$PATH에있는 파일에서 환경 변수를 읽을 수 없습니다. 쉘에 명령을 입력하면 $PATH이 실행되어 실행 파일이 검색됩니다.

는 대신에 "소스"파일이 필요합니다, 당신의 변수를로드하려면 : (. 당신은 또한 초기 / 파일 이름은 절대 할 필요가 있음을 주목하라)

# .bash_profile 
source /Users/Moche/env_vars 

또한, Ruby를 사용하고 있으므로 dotenv gem을 사용하는 것이 좋습니다. dotenv는 Rails 프로젝트의 루트에있는 .env 파일에 환경 변수를 지정하고 시작할 때 자동으로로드합니다. 이렇게하면 각 프로젝트에 필요한 변수가 코드에 가깝게 유지되고 프로젝트를 좀 더 이식성있게 만들 수 있습니다 (예 : Heroku와 같은 서비스에 배포 할 때이 방법을 사용할 수 있음). 비밀번호와 같은 중요한 정보가있는 경우 버전 컨트롤에 .env을 저 지르지 마십시오!

+0

그 보석을 보게 될거야 – Moshe

+0

하지만 난 그냥 절대 경로와 함께 소스에서 수출로 변경 시도하고 여전히 게재되지 않습니다 – Moshe

+0

당신은'.bash_profile' 다시 소스 않았다? (변경 사항을 저장 한 후에는 터미널에서'source ~/.bash_profile' 또는 새 터미널 창을여십시오.) –

관련 문제