我正在努力将 Ubuntu 上运行 Rails 2.3.2 的旧 Rails 应用程序升级到最新的 Rails 2.3.15。该应用程序最初在
vendor/rails
中有一个供应商版本的 Rails,但我已将其删除,安装了 rails 2.3.15
gem,并将 config/environment.rb
中的版本号更改为:
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
我需要做什么才能克服这个错误?
我找到了问题的答案...
Rails 期望只有目录位于
vendor/gems
中,但其中有一个 init.rb
文件试图将 gem 添加到加载路径(已由 Rails 处理)。
这可能无法回答这个特定问题,但在将 Ruby on Rails 版本升级到
7.1.1
后,我收到了类似的错误消息,为了解决它,我只是运行:
gem install bundler
发生错误是因为我的 Gem 版本过时了