Rbenv vagrant глобальная версия ruby ​​без изменений

Я использую Vagrant с плагином Berkshelf для создания машины Ubuntu 12.04 с Ruby 2.0.0-p247 по умолчанию. Когда машина загружается, ruby -v возвращается ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux], указывая, что rbenv не установил правильную версию.

Кроме того, если я попробую rbenv global 2.0.0-p247 Я получаю ошибку rbenv: version2.0.0-p247'не установлено`

Есть идеи, что я делаю не так?

Спасибо

Vagrantfile:

config.berkshelf.enabled = true

config.omnibus.chef_version = :latest

config.vm.provision :shell, :inline => "gem install chef --no-rdoc --no-ri --conservative"

config.vm.provision :chef_solo do |chef|
chef.add_recipe "apt"
chef.add_recipe "git"
chef.add_recipe "build-essential"
chef.add_recipe "ruby_build"
chef.add_recipe "rbenv::vagrant"
chef.add_recipe "rbenv::system"

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

Berksfile:

site :opscode

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

1 ответ

Решение

Вы устанавливаете пользовательские рубины с rbenv поваренная книга. В вашем случае rbenv::system рецепт ничего не делает, так как вы не указали какой-либо системный Ruby для установки.

Вместо этого включите rbenv::user рецепт:

...
chef.add_recipe "ruby_build"
chef.add_recipe "rbenv::vagrant"
chef.add_recipe "rbenv::user"     ### This is the recipe you want

chef.json = {
  'rbenv' => {
    'user_installs' => [
      {
        'user'    => 'vagrant',
        'rubies'  => ['2.0.0-p247'],
...
Другие вопросы по тегам