2013-12-13 3 views
4

Я попытался установить Ruby 2.0.0-p353 на Vagrant, используя ножевое соло. Когда я вошел в систему под именем root и vagrant, ruby -v возвращает Ruby 2.0.0-p353.Пакетная установка использует другую версию Ruby?

Однако, когда я бегу bundle install в проекте Rails, отображается следующее утверждение: версия Ruby,

Your Ruby version is 1.8.7, but your Gemfile specified 2.0.0 

по умолчанию 1.8.7, так что я думаю, что bundle install имеет в виду это. Что мне делать для решения этой проблемы?

$ cat site-cookbooks/ruby/recipes/default.rb 

group 'rbenv' do 
    action :create 
    members 'vagrant' 
    append true 
end 

git '/usr/local/rbenv' do 
    repository 'git://github.com/sstephenson/rbenv.git' 
    reference 'master' 
    action :checkout 
    user "#{node.user}" 
    group 'rbenv' 
end 

directory '/usr/local/rbenv/plugins' do 
    owner "#{node.user}" 
    group 'rbenv' 
    mode 0755 
    action :create 
end 

template '/etc/profile.d/rbenv.sh' do 
    owner "#{node.user}" 
    group "#{node.user}" 
    mode 0644 
end 

git '/usr/local/rbenv/plugins/ruby-build' do 
    repository 'git://github.com/sstephenson/ruby-build.git' 
    reference 'master' 
    action :checkout 
    user "#{node.user}" 
    group 'rbenv' 
end 

execute 'ruby install' do 
    not_if "source /etc/profile.d/rbenv.sh; rbenv versions | grep #{node.ruby.version}" 
    command "source /etc/profile.d/rbenv.sh; rbenv install #{node.ruby.version}" 
    action :run 
end 

execute 'ruby change' do 
    command "source /etc/profile.d/rbenv.sh; rbenv global #{node.ruby.version}; rbenv rehash" 
    action :run 
end 

$ cat site-cookbooks/ruby/attributes/default.rb 

default['user'] = 'root' 
default['ruby']['version'] = '2.0.0-p353' 

$ cat site-cookbooks/ruby/templates/default/rbenv.sh.rb 

export RBENV_ROOT=/usr/local/rbenv 
export PATH="$RBENV_ROOT/bin:$PATH" 
eval "$(rbenv init -)" 
+0

это вы использовали 'rbenv', пожалуйста, попробуйте мой ответ отсюда: http://stackoverflow.com/questions/20531782/updating-ruby-version-with-rbenv-but-gems-apparently-not-updated/20535848 # 20535848 –

+0

Благодарим вас за ответ. Я пытался сделать по этой странице, но я не мог. Например, 'bundle install' возвращает' Gem :: InstallError: activesupport требуется Ruby version> = 1.9.3.'. – ztbuz

+0

Но у вас есть рубиновая версия> = 1.9.3, у вас есть 2.0.0? или 1,8,7? –

ответ

3

Пожалуйста, выполните следующие шаги, чтобы решить эту проблему:

  1. Убедитесь, что следующие команды возвращает правильную версию Ruby:

    $ rbenv versions 
        system 
        2.0.0-p353 
    
    $ rbenv local 
    ruby-2.0.0 
    
    $ rbenv version 
        2.0.0-p353 
    
  2. Убедитесь, что получение версия рубина верна:

    $ bundle exec ruby -v 
    ruby 2.0.0-p353 (2013-11-22 revision 43784) [x86_64-linux] 
    
  3. Если вы получили неверную версию рубина, вы раскошеливаться, чтобы убедиться, что проблема заключается в bundler по телефону:

    $ bundle exec ruby -v 
    ruby 1.8.7 
    
    $ which bundle 
    /usr/bin/bundle 
    

    Он говорит, что он будет вызывать системный рубин, чтобы продолжить рубиновые сценарии.

  4. Переустановка пакетирования, а затем убедитесь, что теперь ток рубин действует:

    $ gem install bundler 
    
    $ bundle exec ruby -v 
    ruby 2.0.0-p353 (2013-11-22 revision 43784) [x86_64-linux] 
    

Также смотрите, как правильно настроить проект рубин, который разрабатывается под rbenv/РВМ here :

Смежные вопросы