【问题标题】:Vagrant using Ruby 1.9.3 as defaultVagrant 默认使用 Ruby 1.9.3
【发布时间】:2013-05-29 16:42:08
【问题描述】:

大家好,我正在尝试构建一个 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 文件中指定版本(如上所示),并使用厨师构建的默认 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]

如何使用 chef-solo 安装它。我已经尝试了一整周,但根本无法正常工作。

【问题讨论】:

    标签: ruby chef-infra vagrant rbenv chef-solo


    【解决方案1】:

    json 要求您为 chef 指定安装 ruby​​ 的 rbenv 位置。因为食谱要求您在系统级别安装 rbenv,然后在这种情况下为用户 lvl vagrant。

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

    所以我去把 json 改成这样:

    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 食谱经常有错误,因此最好在 cheffile 中参考最新的标签版本。

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

    像这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 2013-01-20
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多