Вопрос

Я только что обновился до 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

при попытке запустить сервер.Я устранил все ошибки, касающиеся OpenSSL и Iconv, скопировав требуемые DLL-файлы в мой каталог ruby \ bin.Я в тупике по этому поводу, может быть, сейчас я использую 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 версии 5.1.41-community.Я попробую установить MySQL 5.0.

  • Обновить :Я должен сказать, что я никогда не использую OpenSSL в Проекте, поэтому я должен сказать, что я совершенно сбит с толку тем, что это требуется в первую очередь.Пытаясь выяснить, была ли это ошибка Rails, я создал фиктивное приложение (rails bla), и rails даже не создал скелет по умолчанию, поскольку в "activesupport /lib / active_support/secure_random.rb" появилась какая-то случайная ошибка ( "raise NotImplementedError", "Нет случайного устройства" ) .Я погуглил это и заменил на другую версию из гитхаб.Это создало скелет, но при попытке запустить сервер я получаю ту же ошибку, даже если это фиктивное приложение 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 вам нужен 32-разрядный драйвер в Rails \ bin.Водителя зовут 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-разрядная версия приведет к сбою с ошибкой выделения памяти или чем-то странным в этом роде

Ошибка загрузки:193:%1 не является допустимым приложением Win32.Я получил это сообщение, когда попытался загрузить mysql ruby gem в irb.Проблема:libmysql.dll ДОЛЖНА быть та же версия mysql, что и в history.txt из драгоценного камня ruby mysql

Исправление:(1) Перейдите к the readme.txt и history.txt для mysql gem и проверьте версию mysql .(2) Установите соответствующую версию mysql.(3) Скопируйте файл libmysql.dll из каталога mysql bin в каталог ruby bin.(4) Вернитесь в ruby irb и введите "требовать 'rubygems'", затем "требовать 'mysql'" (5) Скажите "дааа", когда увидите "true"!Примечание:Возможно, вам на самом деле не нужно устанавливать необходимую версию mysql, чтобы получить нужный файл libmysql.dll .Я просто обнаружил, что проще просто установить его.Если вы похожи на меня, то эта проблема была настолько досадной, что я подумывал отказаться от написания программы.Итак, я надеюсь, что это решение восстановит вашу уверенность.

Посмотрим, поможет ли это: http://www.technipages.com/error-193-1-is-not-a-valid-win32-application.html

Исходя из того, что упоминается в этой статье, есть ли у вас на вашем диске D:/ папка с именем "nu"?Если да, попробуйте переименовать его и проверьте, нормально ли работает сервер.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top