【问题标题】:Rbenv vagrant global ruby version unchangedrbenv vagrant 全局 ruby​​ 版本不变
【发布时间】:2013-09-05 20:34:31
【问题描述】:

我正在使用带有 Berkshelf 插件的 Vagrant 创建一个 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' not installed`

任何想法我做错了什么?

谢谢

流浪文件:

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

伯克斯文件:

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"

【问题讨论】:

  • 看起来您正在使用github.com/fnichol/chef-rbenv(您知道还有另一本 rbenv 食谱,对吧?)。几天前我使用chef-solo 运行了另一个,它正在工作。你用的那个没试过。检查/etc/profile.d/rbenv.sh 是否正确填充。

标签: ruby chef-infra vagrant berkshelf


【解决方案1】:

您正在使用 rbenv 食谱安装用户 Rubies。在您的情况下,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'],
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2012-02-27
    相关资源
    最近更新 更多