Руби на рельсах 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

при попытке запустить сервер. Я устранил все ошибки, связанные с 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 v5.1.41. Я попробую установить MySQL 5.0.

  • Обновление: я должен сказать, что я никогда не использую OpenSSL в проекте, поэтому я должен сказать, что я весьма озадачен тем, что это требуется в первую очередь. Пытаясь увидеть, была ли это ошибка Rails, я создал фиктивное приложение (rails bla), и рельсы даже не создали скелет по умолчанию, так как какая-то случайная ошибка ("raise NotImplementedError, "No random device") выскочила в " activesupport/lib/active_support/secure_random.rb". Я погуглил и заменил другой версией из github. Это создало скелет, но при попытке запустить сервер я получаю ту же ошибку, даже если это фиктивное приложение Rails по умолчанию. Я попытаюсь взломать это файл снова, снова понятия не имею, что OpenSSL делает здесь в первую очередь и требует DLL.

В случае потери любая помощь будет оценена по достоинству. Заранее спасибо !


person Dr1Ku    schedule 27.12.2009    source источник


Ответы (5)


В конце концов, это была проблема с DLL, пошел 1.8.6, x32 MySQL и OpenSSL, распаковал все упомянутые dll в этом замечательном посте в блоге, и все снова работает гладко, черт возьми! И да, я сам ответил на свой вопрос :-) Спасибо!

person Dr1Ku    schedule 28.12.2009

Это помогло мне с https://github.com/oneclick/rubyinstaller/wiki/Troubleshooting#wiki-fraps_violation


После расследования наличие инструментов, изменяющих загрузку DLL (таких как FRAPS или Detours), может повлиять на загрузку расширений Ruby.

Рекомендуется отключить/удалить FRAPS.


Это исправило это для меня.

person Samwise    schedule 09.11.2013

Для 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-битная версия вылетит с ошибкой выделения памяти или что-то в этом роде

person dB.    schedule 05.01.2011

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

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

person Habesha man    schedule 11.01.2011

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

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

person Vijay Dev    schedule 27.12.2009
comment
Спасибо за предложение, хотя это не по пути - например, я не могу запустить сервер из обычного каталога D:\bla (создал пример проекта, rails bla), все еще получая ту же ошибку. - person Dr1Ku; 27.12.2009