5

こんにちは、vagrant vm を構築しようとしています。プロビジョニングにはchef-soloを使用し、バージョンの管理にはchef-rbenvを使用しています。だからvagrantfileで私が指定する

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 

デフォルトのRubyバージョンが1.9.3-p327になるようにしますが、クラッシュします

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

vagrantファイルでバージョンを指定しない場合(上記のように)、chefがビルドするデフォルトのrbenvを使用して、vmにいるときにインストールできるようにします。それから私はこれを手に入れます

vagrant@precise64:/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
...

実行すると機能しますsudo rbenv install 1.9.3-p327が、何かを実行するときは、プレフィックスとして sudo を付ける必要がありますruby -v

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

シェフソロでインストールするにはどうすればよいですか。私は一週間中試しましたが、まったく機能しません。

4

1 に答える 1