Ruby on rails &引用;格式错误的版本号字符串mingw32“;启动轨道时

Ruby on rails &引用;格式错误的版本号字符串mingw32“;启动轨道时,ruby-on-rails,mingw,Ruby On Rails,Mingw,我的操作系统:WindowsXP、ruby:1.8.7、rails:2.3.5 一切都很好,但我只是安装了一个“gcc-4.4.0-mingw32-bin”,然后运行gem install rdisont,然后我的rails无法启动 现在,当我运行ruby脚本/server或rake gems:install时,将发生以下错误: rake aborted! Malformed version number string mingw32 (See full trace by running ta

我的操作系统:WindowsXP、ruby:1.8.7、rails:2.3.5

一切都很好,但我只是安装了一个“gcc-4.4.0-mingw32-bin”,然后运行
gem install rdisont
,然后我的rails无法启动

现在,当我运行
ruby脚本/server
rake gems:install
时,将发生以下错误:

rake aborted!
Malformed version number string mingw32

(See full trace by running task with --trace)

E:\WORKSPACE_TOPCODER\wenda_ror>ruby script/server
=> Booting Mongrel
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
E:/Ruby/ruby-187/lib/ruby/site_ruby/1.8/rubygems/version.rb:182:in `initialize': Malformed version number string mingw32 (ArgumentError)
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:105:in `new'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:105:in `version_for_dir'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:47:in `refresh!'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:45:in `each'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:45:in `refresh!'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/vendor_gem_source_index.rb:29:in `initialize'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/gem_dependency.rb:21:in `new'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/gem_dependency.rb:21:in `add_frozen_gem_path'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:298:in `add_gem_load_paths'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:132:in `process'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `send'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `run'
        from E:/WORKSPACE_TOPCODER/wenda_ror/config/environment.rb:9
        from E:/Ruby/ruby-187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from E:/Ruby/ruby-187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from E:/Ruby/ruby-187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'

现在我已经重新安装了ruby和rails,但同样的错误仍然发生。我在谷歌上搜索,没有找到解决方案。看来我必须重新安装我的windows xp。有人知道原因吗?帮助…

刚才,我找到了解决方案:删除“供应商/宝石”下的文件


原因可能是我在安装了
gcc
之后运行了
rake gems:unpack
,因此一些无效文件被解压缩到了“gems”目录。在我删除它们之后,一切都正常。

问题是您已经解包了一个gem,其中包含一个特定于Windows的本机扩展构建。这种gem的后缀包括mingw32(例如nokogiri-1.4.3.1-x86-mingw32)。执行
rake gems:unpack
后,应该删除这些未打包的文件夹

另一方面,这避免了格式错误的版本字符串问题(您报告的问题)。另一方面,使用不同操作系统(linux/mac osx)的用户和服务器能够自己构建gem的本机扩展(不适用于windows版本)