2011-09-17 7 views
0

RVM을 설치했는데 루트로 설치되었습니다. 권한은 다음과 같습니다 여기 보석을 비 루트 사용자로 설치할 수 없습니다.

drwxrwsr-x 23 root rvm 4096 2011-09-17 15:22 rvm 

내 sudo는 같은 보석을 설치하려고의 예입니다

[email protected]:/usr/local/rvm$ sudo gem install bundler 
Successfully installed bundler-1.0.18 
1 gem installed 
Installing ri documentation for bundler-1.0.18... 
Installing RDoc documentation for bundler-1.0.18... 

[email protected]:/usr/local/rvm$ gem list 

*** LOCAL GEMS *** 

rake (0.9.2) 

이상한 것은입니다 I "sudo를 쓰에 -"경우에 것을 다음과 보석을 설치 루트, 작동합니다. 우분투가 sudoers 파일에 나열되는 방법에 문제가 있습니까?

ubuntu ALL=(ALL) NOPASSWD:ALL 

나는 sudoers를 VIM으로 편집 했으므로 VISUDO를 사용하여 문제가 있는지 확실하지 않습니다.

+0

오류가 발생하면 어떻게됩니까? – jefflunt

+0

실패 텍스트가 없으면 설치되지만 설치되지는 않습니다. –

답변

1

sudo 대신 rvmsudo을 사용해보세요.

execute "gem-install-bundler" do 
    user "root" 
    command <<-COMMAND 
    bash -c ' 
     source {{{/path/to/rvm}}} 
     rvm use {{{ruby-version}}} 
     gem install bundler 
    ' 
    COMMAND 
end 
+0

명령 줄로 시도 할 때 작동하지만 셰프가 실행하지 않을 때는 작동하지 않습니다. rvmsudo를 찾을 수 없다는 오류가 나옵니다. 왜 그런지 알고 있니? –

+0

실제로 경로로 가리키면 실행되지만 여전히 설치되지 않습니다. 그래서 rvmsudo는 서버에 로그인 할 때 작동하지만 요리사가 운영 할 때는 작동하지 않습니다. –

+0

내 대답이 업데이트되었습니다. – yfeldblum

0

RVM 환경이 아마 sudo는에 의해로드되지 않은 :이 요리사 실행의 컨텍스트에있는 경우

, 당신은이 리소스를 사용할 수 있습니다.

시도 실행 :

sudo -i gem install bundler 

-i는 다음과 같습니다

죄송합니다 "초기 로그인을 시뮬레이션"그러나 나는 그 순간에 자신에 의해 그것을 확인할 수 없습니다.

0

나는 똑같은 문제가 있었고 이것은 나를 위해 일했습니다. 글로벌 gemset에 설치된 다른 모든 방법은 오류없이 명령이 반환되는 이유입니다.

script 'bundle gems' do 
    user 'root' 
    code <<-EOH 
    . "/usr/local/rvm/scripts/rvm" 
    cd /your/directory 
    rvm rvmrc trust 
    BUNDLE_WITHOUT=test bundle install 
    exit $? 
    EOH 
    interpreter 'bash' 
end 
관련 문제