2013-06-03 9 views
5

ねえ、私は変人のVMを構築しようとしています。私はプロビジョニングのためにシェフ・ソロを使用しており、私のバージョンを管理するにはchef-rbenvを使用しています。そうvagrantfileにデフォルトのルビーのバージョンは1.9.3-P327になるように、私はデフォルトでRuby 1.9.3を使用している変わらない人

config.vm.provision :chef_solo do |chef| 
    chef.cookbooks_path = "cookbooks" 
    chef.add_recipe "ruby_build" 
    chef.add_recipe "rbenv::system" 
    chef.add_recipe "rbenv::vagrant" 
    ... 

    chef.json = { 
    "rbenv" => { 
     "rubies" => [ "1.9.3-p327" ], 
     "global" => "1.9.3-p327", 
     "gems" => { 
     "1.9.3-p327" => [ 
     { "name" => "bundler" } 
     ] 
     } 
    } 
    } 
end 

を指定して、しかし、私のように(浮浪者のファイルにバージョンを指定いけない場合には、

Error executing action `install` on resource 'rbenv_ruby[1.9.3-p327] (system)' 

がクラッシュし、上で見たように)、シェフがビルドしたデフォルトのrbenvを使って、vmにインストールしたらインストールできます。私はsudo rbenv install 1.9.3-p327を実行しますが、その後は何も実行しているとき、私はそれがシェフ・ソロでインストール私が得ることができますどのようにsudoでもruby -v

[email protected]:~$ ruby -v 
ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux] 
[email protected]:~$ sudo ruby -v 
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.3.0] 

を前に付けする必要があるときに私はそれが動作します。この

[email protected]:/vagrant$ rbenv install 1.9.3-p327 
Downloading yaml-0.1.4.tar.gz... 
-> http://dqw8nmjcqpjn7.cloudfront.net/36c852831d02cf90508c29852361d01b 
Installing yaml-0.1.4... 

BUILD FAILED 
... 

を取得します。私は一週間一回試してみて、それをまったく動かすことはできません。

答えて

4

jsonは、ルビーをインストールするrbenvの場所をシェフに指定する必要があります。レシピは、システムレベルでrbenvをインストールした後、この場合はユーザのlvlをインストールしたことを呼び出します。

chef.add_recipe "rbenv::system" 
chef.add_recipe "rbenv::vagrant" 

ので、私は行って、これにJSONを変更:その良いがcheffileで料理の最新tagedバージョンを参照するよう

chef.json = { 
    'rbenv' => { 
    'user_installs' => [ 
     { 
     'user' => 'vagrant', 
     'rubies' => ['1.9.3-p327'], 
     'global' => '1.9.3-p327', 
     'gems' => { 
      '1.9.3-p327' => [ 
      { 'name' => 'bundler' }, 
      { 'name' => 'rake' } 
      ] 
     } 
     } 
    ] 
    } 
} 

また、現在rbenvの料理は、多くの場合、バグがあります。

cookbook 'rbenv', git: 'git://github.com/fnichol/chef-rbenv.git', ref: "v0.7.2" 

そうです。

関連する問題