2011-09-17 16 views
0

RVMがインストールされていて、rootとしてインストールされています。権限は以下のとおりです。ここで gemをroot以外のユーザーとしてインストールできない

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の秀 - 」場合ということと、その後のように宝石をインストールルート、それは動作します。 ubuntuがsudoersファイルにどのようにリストされているかは問題ですか?

ubuntu ALL=(ALL) NOPASSWD:ALL 

私はVIMで編集sudoersファイルをした、そしてそれは私がそれが問題を作成したのかはわからないので、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 -i gem install bundler 

-iは次のとおりです。申し訳ありません

"最初のログインをシミュレート" が、私は現時点では自分でそれを確認することはできません。

0

私は同じ問題を抱えていました。グローバルジェムセットにインストールされている他のすべてのメソッドは、エラーなしにコマンドが返されることが分かります。

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 
関連する問題