2011-04-24 5 views
2

일부 작업에 대해 루트 액세스가 필요한 루비 스크립트를 실행하려고합니다. 나는 rvmsudo가 존재하고 그것을 사용한다는 것을 알고 있지만, TEST_ENV=1과 같은 env var를 설정하고 싶다면 작동하지 않습니다.rvmsudo가있는 사용자 정의 env vars

예 :

rvmsudo ruby some_script_which_requires_root_access.rb 

내가 스크립트를 디버깅하고 ENV 해시를 검토 할 때, 나는 TEST_ENV=1 var에 표시되지 않습니다. 나는 통해 VAR 수출 시도 :

export TEST_ENV=1 

current_user에 대한 .bash_profile.bashrc에, .rvmrc에 넣고, 또한 .profile 및 루트 사용자의 .bashrc에 있지만 작동하지 않습니다.

내 질문에, rvmsudo으로 스크립트를 실행할 때 ENV 루비 해시의 일부가되도록이 코드를 정의하거나 내보내려면 어디에서 작성해야합니까? ?

답변

3

당신은 시도 할 수 있습니다. 그래서 예상대로 작동해야합니다.

+0

-E 옵션 설명서에서 " 일치하는 명령에 SETENV 태그가 있거나 sueners (5)에 setenv 옵션이 설정된 경우에만 사용할 수 있습니다."라는 메시지가 표시됩니다. –

+0

/etc/sudoers에서 setenv를 실행하면 작동합니다. –

+0

AFAIK는 기본적으로 macos에 있으며 아마도 리눅스에서는 아닙니다. – ALoR

0

간단히 rvmsudo 스크립트를 편집하고 거기에 envvar 정의를 넣으려고 했습니까? 이 전체 환경을 보존

sudo -E ruby some_script_which_requires_root_access.rb 

:와

+5

예, 해킹했습니다. 작동하게 만들었습니다. 그러나 그것은 추한 것이고 나는 나의 코드와 모든 셋업에서 우아함을 제공하기 위해 노력한다. –

관련 문제