Ruby 2.3.15 错误:版本号字符串格式错误

问题描述 投票:0回答:2

我正在努力将 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

我需要做什么才能克服这个错误?

ruby ruby-on-rails-2
2个回答
1
投票

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

Rails 期望只有目录位于

vendor/gems
中,但其中有一个
init.rb
文件试图将 gem 添加到加载路径(已由 Rails 处理)。


0
投票

这可能无法回答这个特定问题,但在将 Ruby on Rails 版本升级到

7.1.1
后,我收到了类似的错误消息,为了解决它,我只是运行:

gem install bundler

发生错误是因为我的 Gem 版本过时了

© www.soinside.com 2019 - 2024. All rights reserved.