将Ruby更新为1.9.3,现有应用程序上的Gems现在导致错误

时间:2013-02-23 16:27:45

标签: ruby-on-rails ruby ruby-on-rails-3 gem

我在Ruby 1.8中编写了一个Rails应用程序,其中包含各种宝石,所有这些都可以正常运行。通过RVM,我现在运行1.9.3(是的,我确实需要1.9.x),但开发服务器将无法启动,而是抛出以下错误:

$ rails s
/usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:247:in `to_specs': Could not find railties (>= 0) amongst [bigdecimal-1.1.0, bundler-1.2.4, io-console-0.3, json-1.5.5, minitest-2.5.1, rake-10.0.3, rake-0.9.2.2, rdoc-3.9.5, rubygems-bundler-1.1.0, rvm-1.11.3.6] (Gem::LoadError)
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:256:in `to_spec'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:1208:in `gem'
from /usr/local/bin/rails:18

所以,我认为该应用程序至少仍在寻找1.8颗宝石。我需要做什么?

$ ruby -v && gem -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]
1.8.25

更新

运行

gem install railties

似乎工作,但铁路仍然没有显示在宝石列表中,服务器仍然无法启动。对于它的地狱,我再次尝试了,这次gem(及其依赖项)似乎确实已经安装了。

但是,我仍然需要运行bundle install,它(在我的Gemfile中指定了正确的Ruby版本后)给了我以下内容..

$ sudo bundle install
Your Ruby version is 1.8.7, but your Gemfile specified 1.9.3
$ ruby -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]

1 个答案:

答案 0 :(得分:1)

这是由与Ruby 1.8的冲突引起的。删除它(通过普通的旧apt-get)解决了这个问题。