我刚刚升级到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导致它。
宝石列表:
*** 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。
不知所措,任何帮助都将不胜感激。 提前谢谢!
答案 0 :(得分:5)
毕竟这是一个DLL问题,去了1.8.6,x32 MySQL和OpenSSL,解压每个提到的in this excellent blog post所有的dll并且它们再次顺利运行,天啊!是的,毕竟我已回答了我自己的问题:-)谢谢!
答案 1 :(得分:2)
这帮助了我https://github.com/oneclick/rubyinstaller/wiki/Troubleshooting#wiki-fraps_violation
经过调查,拥有改变加载DLL的工具(如FRAPS或Detours)会影响加载Ruby的扩展。
建议您禁用/卸载FRAPS。
为我修好了。
答案 2 :(得分:1)
对于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应用程序。< / p>
错误的32位版本会因内存分配错误或类似奇怪的内容而崩溃
答案 3 :(得分:1)
LoadError:193:%1不是有效的Win32应用程序。 当我尝试在irb中加载mysql ruby gem时,我收到了这个消息。 问题:libmysql.dll必须是在history.txt中找到的相同版本的mysql ruby mysql gem
修复:(1)转到mysql gem的readme.txt和history.txt并验证mysql 版。 (2)安装相应的mysql版本。 (3)将libmysql.dll文件从mysql bin目录复制到ruby bin目录。 (4)返回ruby irb并输入“require'rubygems'”然后“require'mysql'” (5)当你看到“真实”时说“yeaaah”! 注意:您可能不需要安装所需的mysql版本以获得正确的版本 libmysql.dll文件。我刚刚发现安装它更容易。如果你像我一样,这个问题是如此令人烦恼,我想放弃编写程序。所以,我希望这个解决方案能够恢复你的信心。
答案 4 :(得分:0)
看看这是否有帮助:http://www.technipages.com/error-193-1-is-not-a-valid-win32-application.html
根据本文中提到的,您的D:/驱动器中是否有一个名为“nu”的文件夹?如果是,请尝试重命名并检查服务器是否正常运行。