【问题标题】:Ruby 2.3.15 error: Malformed version number stringRuby 2.3.15 错误:格式错误的版本号字符串
【发布时间】:2013-01-15 20:08:52
【问题描述】:

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

重新启动应用程序后,我在 mongrel 日志中收到此错误消息(这会阻止应用程序启动):

/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_GEM_VERSION,以便我们查看正在使用的版本号?
  • 您希望我何时/何地这样做?
  • 由于错误的来源(rubygems/version.rb - 即rubygemsversion 模块),我猜rubygems 是说它自己的版本号是格式错误,或者它尝试加载的 gem 具有格式错误的版本号。嗯。
  • 还要注意错误信息末尾的两个空格。 Google 上此错误的大多数版本似乎都是 Malformed version number string SOMETHING 的形式。听起来它试图报告它看到一个空白的版本号字符串,它期望它是非空白的。
  • 可能是因为您已经删除了 Rails 的销售副本,它仍在尝试读取销售副本但没有找到它?因此报告一个空白版本号?只是猜测:/

标签: ruby ruby-on-rails-2


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2022-11-26
    相关资源
    最近更新 更多