Ruby on Rails Win7 x64?

我刚刚升级到Win7 x64 Professional并想重新开发我的Rails应用程序,但是我收到以下错误:

=> Booting Mongrel => Rails 2.3.5 application starting on http://127.0.0.1:3344 D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:271:in `require_frameworks': 193: %1 is not a valid Win32 application. - D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/1.8/i386-mswin32/openssl.so (RuntimeError) from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:134:in `process' from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `send' from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `run' from D:/nu codes/R/Aptana/tempproj/config/environment.rb:9 from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require' from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in' from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require' from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/commands/server.rb:84 from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from D:/nu codes/R/ruby-1.8.7-p174-i386-mswin32/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from D:/nu codes/R/Aptana/tempproj/script/server:3 from -e:1:in `load' from -e:1 Process finished with exit code 1 

在尝试运行服务器时。 通过将所需的.dll复制到我的ruby \ bin目录中,我减轻了有关OpenSSL和Iconv的所有错误。 我对这个问题很难过,难道我现在正在运行x64吗? 我不知道,至少其他堆栈跟踪命名为.dll导致它。

gem上市:

 *** LOCAL GEMS *** actionmailer (2.3.5) actionpack (2.3.5) activerecord (2.3.5) activeresource (2.3.5) activesupport (2.3.5) authlogic (2.1.3) cgi_multipart_eof_fix (2.5.0) gem_plugin (0.2.3) mongrel (1.1.5) mysql (2.8.1) rack (1.0.1) rails (2.3.5) rake (0.8.7) 

我也在运行MySQL v5.1.41-community。 我将尝试安装MySQL 5.0。

  • 更新:我必须说我从未在项目中使用OpenSSL,所以我必须说我很困惑,首先需要它。 试图看看它是否是Rails错误,我创建了一个虚拟应用程序(rails bla)和rails甚至不会创建默认骨架,因为一些随机错误(“引发NotImplementedError,”没有随机设备“)弹出” activesupport / lib / active_support / secure_random.rb“。我用Google搜索并用github中的另一个版本替换它。这创建了骨架,但是尝试运行服务器我得到了同样的错误,即使它是Rails默认的虚拟应用程序我将再次尝试入侵该文件,再次不知道OpenSSL在这里做了什么,并且需要DLL。

不知所措,任何帮助将不胜感激。 提前致谢 !

毕竟这是一个DLL问题,去了1.8.6,x32 MySQL和OpenSSL,解压缩了这篇优秀博客文章中提到的每个dll ,并且它们再次顺利运行,天哪! 是的,我毕竟回答了我自己的问题:-)谢谢!

这帮我从https://github.com/oneclick/rubyinstaller/wiki/Troubleshooting#wiki-fraps_violation


经过调查,拥有改变加载DLL的工具(如FRAPS或Detours)会影响加载Ruby的扩展。

建议您禁用/卸载FRAPS。


那为我修好了。

对于Rails或DataMapper或与MySQL交谈的任何内容,您需要在Rails \ bin中使用32位驱动程序。 该驱动程序称为libmysql.dll。 即使您有64位服务器,也需要32位驱动程序。

64位驱动程序将失败将ruby / gems / 1.8 / gems / do_mysql-0.10.2-x86-mingw32 / lib / do_mysql / 1.8 / do_mysql.so:193:%1不是有效的Win32应用程序。

一个错误的32位版本将崩溃,内存分配错误或类似的奇怪

LoadError:193:%1不是有效的Win32应用程序。 当我尝试在irb中加载mysql ruby​​ gem时,我收到了这个消息。 问题:libmysql.dll必须是在ruby mysql gem的history.txt中找到的相同版本的mysql

修复:(1)转到mysql gem的readme.txt和history.txt并validationmysql版本。 (2)安装相应的mysql版本。 (3)将libmysql.dll文件从mysql bin目录复制到ruby bin目录。 (4)返回ruby irb并输入“require’srubygems’”然后“require’mysql’”(5)当你看到“true”时说“yeaaah”! 注意:您可能不需要安装所需的mysql版本来获取正确的libmysql.dll文件。 我刚刚发现安装它更容易。 如果你像我一样,这个问题是如此令人烦恼,我想放弃编写程序。 所以,我希望这个解决方案能够恢复你的信心。

看看这是否有帮助: http : //www.technipages.com/error-193-1-is-not-a-valid-win32-application.html

从本文中提到的内容,您的D:/驱动器中是否有一个名为“nu”的文件夹? 如果是,请尝试重命名并检查服务器是否正常运行。