2013-01-15 42 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處理)。