Ruby on Rails: запуск Typhoeus в Windows 7 (64-разрядная версия)

Я не могу заставить драгоценный камень Typhoeus работать на моем компьютере с Windows 7.

По сути, он не находит файл «native.so» в «C:/Ruby192/lib/ruby/gems/1.9.1/gems/typhoeus-0.2.4/ext/typhoeus/». Как это исправить?

 C:/Ruby192/lib/ruby/gems/1.9.1/gems/typhoeus-0.2.4/lib/typhoeus.rb:10:in
 `require': 126: The specified module
 could not be found.   -
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/typhoeus-0.2.4/ext/typhoeus/native.so
 (LoadError)    from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/typhoeus-0.2.4/lib/typhoeus.rb:10:in
 `<top (required)>'     from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:68:in
 `require'  from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:68:in
 `block (2 levels) in require'  from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:66:in
 `each'     from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:66:in
 `block in require'     from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:55:in
 `each'     from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:55:in
 `require'  from
 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler.rb:120:in`require'

person krn    schedule 14.06.2011    source источник


Ответы (3)


Проблема заключается в том, что тифозу требуется curl в качестве библиотеки для разработки, чтобы успешно скомпилировать его расширение native.so.

Сначала вам нужно установить RubyInstaller DevKit из страница загрузок. Во-вторых, вам нужно будет получить заголовки и библиотеки curl и разработки для MinGW, инструкции по которым вы можете найти в нашем списке рассылки:

http://groups.google.com/group/rubyinstaller/browse_thread/thread/c8a4bdb6663cbf7c

К сведению, в том же посте упоминается, насколько неудачной была попытка пользователя заставить драгоценный камень работать в Windows, и в итоге он переключился на бордюр.

PS: в то время как другие могут сказать, что *.so - это соглашение UNIX/POSIX для общих объектов, это расширение, которое Ruby решил использовать для Windows C-Extensions, например, Python использует *.pyd для своих расширений.

person Luis Lavena    schedule 14.06.2011

Что сработало для меня (Win7 x64), так это загрузка .dll по ссылке под названием Download libcurl.dll (all versions) only, найденной здесь: http://www.paehl.com/open_source/?CURL_7.35.0.

После извлечения я взял файл .dll из каталога NoSSL/SSL (кажется, что работает любой из них, я использовал SSL просто для уверенности). Я скопировал файл в каталог Ruby /bin, и Typhoeus заработал.

Примечание. Вы не можете использовать 64-разрядную версию библиотеки .dll, поскольку Ruby является 32-разрядной. Typhoeus не реагировал на файл x64.

Надеюсь, это поможет кому-то.

person Seralize    schedule 06.03.2014

если этот гем ищет native.so, то он может не работать с окнами, *.so является *NIX-эквивалентом *.dll для Windows, файлом «общий объект» или «динамически связанная библиотека». Так что может действительно понадобиться native.dll или жемчужина, построенная на платформено-зависимом коде. Посмотрите на их документацию, это всего лишь выстрел в темноту.

опять же, он говорит, что что-то произошло в native.so (LoadError), так что, возможно, его начало выполнено, idk

person loosecannon    schedule 14.06.2011