1

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 も実行しています。MySQL5.0をインストールしてみます。

  • 更新 : 私はプロジェクトで OpenSSL を使用したことがないと言わざるを得ないので、そもそも OpenSSL が必要であることにかなり困惑していると言わざるを得ません。Rails のエラーかどうかを確認するために、ダミーのアプリ (rails bla) を作成しましたが、ランダムなエラー ( "raise NotImplementedError, "No random device" ) が " activesupport/lib/active_support/secure_random.rb" . それをググって、githubの別のバージョンに置き換えました。これでスケルトンが作成されましたが、サーバーを実行しようとすると、Rails のデフォルトのダミー アプリであっても、同じエラーが発生します。 . 私は再びそのファイルにハッキングしようとしますが、最初に OpenSSL がここで何をしていて、DLL を必要としているのかわかりません。

途方に暮れましたが、どんな助けもいただければ幸いです。前もって感謝します !

4

5 に答える 5

5

結局、これは DLL の問題でした。1.8.6、x32 MySQL、および OpenSSL に移行し、この優れたブログ投稿で言及されているすべての dll を解凍し、すべてが再びスムーズに実行されるようになりました。そして、はい、結局、私は自分の質問に答えました:-)ありがとう!

于 2009-12-28T09:48:41.107 に答える
2

これはhttps://github.com/oneclick/rubyinstaller/wiki/Troubleshooting#wiki-fraps_violationから私を助けました


調査の結果、DLL の読み込みを変更するツール (FRAPS や Detours など) を使用すると、Ruby の拡張機能の読み込みに影響を与える可能性があります。

FRAPS を無効化/アンインストールすることをお勧めします。


それは私のためにそれを修正しました。

于 2013-11-09T02:24:34.540 に答える
1

LoadError: 193: %1 は有効な Win32 アプリケーションではありません。Irb で mysql ruby​​ gem を読み込もうとしたときに、このメッセージが表示されました。問題: libmysql.dll は、ruby mysql gem の history.txt にある mysql と同じバージョンでなければなりません。

修正: (1) mysql gem の readme.txt および history.txt に移動し、mysql のバージョンを確認します。(2) 対応する mysql バージョンをインストールします。(3) libmysql.dll ファイルを mysql の bin ディレクトリから ruby​​ の bin ディレクトリにコピーします。(4) ruby​​ irb に戻り、「require 'rubygems'」と入力してから「require 'mysql'」と入力します。注: 適切な libmysql.dll ファイルを取得するために、必要なバージョンの mysql をインストールする必要はない場合があります。インストールするだけで簡単だと思いました。あなたが私のような人なら、この問題はとても厄介で、プログラムを書くのをあきらめようと思いました。ですから、この解決策があなたの信頼を回復することを願っています.

于 2011-01-11T20:10:23.230 に答える
1

Rails や DataMapper など、MySQL と通信するには、Rails\bin に 32 ビット ドライバーが必要です。ドライバーは libmysql.dll と呼ばれます。64 ビット サーバーを使用している場合でも、32 ビット ドライバーが必要です。

ruby/gems/1.8/gems/do_mysql-0.10.2-x86-mingw32/lib/do_mysql/1.8/do_mysql.so: 193: %1 は有効な Win32 アプリケーションではありません。

間違った 32 ビット バージョンは、メモリ割り当てエラーまたはそのような奇妙なことでクラッシュします

于 2011-01-05T06:46:46.927 に答える
0

これが役立つかどうかを確認してください: http://www.technipages.com/error-193-1-is-not-a-valid-win32-application.html

この記事にあるように、D:/ドライブに「nu」というフォルダがありますか? はいの場合は、名前を変更して、サーバーが正常に動作するかどうかを確認してください。

于 2009-12-27T16:28:17.247 に答える