2013-01-15 60 views
0

我正在将在Ubuntu上运行Rails 2.3.2的旧Rails应用程序升级到最新的Rails 2.3.15。该应用程序最初有轨的vendored版本vendor/rails但是我已经删除了,安装了rails 2.3.15宝石,并改变了版本号config/environment.rb到:Ruby 2.3.15错误:格式错误的版本号字符串

RAILS_GEM_VERSION = '2.3.15' unless defined? RAILS_GEM_VERSION 

在重新启动应用程序,我得到在此错误信息杂种日志(防止应用程序启动):

/usr/local/lib/site_ruby/1.8/rubygems/version.rb:53:in `initialize': Malformed version number string (ArgumentError) 
    from /usr/lib/ruby/gems/1.8/gems/rails-2.3.15/lib/rails/vendor_gem_source_index.rb:105:in `new' 
    from /usr/lib/ruby/gems/1.8/gems/rails-2.3.15/lib/rails/vendor_gem_source_index.rb:105:in `version_for_dir' 
    from /usr/lib/ruby/gems/1.8/gems/rails-2.3.15/lib/rails/vendor_gem_source_index.rb:47:in `refresh!' 
    from /usr/lib/ruby/gems/1.8/gems/rails-2.3.15/lib/rails/vendor_gem_source_index.rb:45:in `each' 
    from /usr/lib/ruby/gems/1.8/gems/rails-2.3.15/lib/rails/vendor_gem_source_index.rb:45:in `refresh!' 
    from /usr/lib/ruby/gems/1.8/gems/rails-2.3.15/lib/rails/vendor_gem_source_index.rb:29:in `initialize' 
    from /usr/lib/ruby/gems/1.8/gems/rails-2.3.15/lib/rails/gem_dependency.rb:21:in `new' 
    from /usr/lib/ruby/gems/1.8/gems/rails-2.3.15/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path' 
    ... 17 levels... 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/command.rb:212:in `run' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281 
    from /usr/bin/mongrel_rails:19:in `load' 
    from /usr/bin/mongrel_rails:19 

我需要做些什么才能避免这个错误?

+2

你可能会打印'RAILS_GEM_VERSION',以便我们可以看到正在使用哪个版本号? – Phrogz

+0

您何时/在哪里要我这样做? – Andrew

+0

由于错误的来源('rubygems/version.rb' - 也就是'rubygems'的'version'模块),我猜'rubygems'说的是它自己的版本号是畸形的,或者它试图加载的宝石的版本号格式不正确。嗯。 – Matchu

回答

1

我找到了答案,我的问题...

Rails的期待,只有目录将是vendor/gems,但有一个init.rb文件中有哪些是想增加宝石负载路径(这已经由Rails处理)。