Установка Typhoeus на Ruby on Rails в Windows XP (32-разрядная версия) - PullRequest
3 голосов
/ 19 мая 2011

Я пытался сделать какой-нибудь простой "сервер rails" в моем приложении "Ruby on Rails", однако я работаю с моим другом, который использует Linux, я сижу на Windows XP (32-битная) ) все идет гладко и все, он реализует гем под названием «curl» и «typhoeus», поэтому для того, чтобы я мог просмотреть его на своем локальном хосте: 3000 я должен установить драгоценные камни также.


Так вот что я написал:


D:\>gem install typhoeus
Building native extensions.  This could take a while...
ERROR:  Error installing typhoeus:
        ERROR: Failed to build gem native extension.

C:/Ruby187/bin/ruby.exe extconf.rb
checking for curl/curl.h in C:/Ruby187/lib/ruby/gems/1.8/gems/typhoeus-0.2.4/cro
ss/curl-7.19.4.win32/include... no
need libcurl
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby187/bin/ruby


Gem files will remain installed in C:/Ruby187/lib/ruby/gems/1.8/gems/typhoeus-0.
2.4 for inspection.
Results logged to C:/Ruby187/lib/ruby/gems/1.8/gems/typhoeus-0.2.4/ext/typhoeus/
gem_make.out


Да, это выглядит не очень красиво, но, по-видимому, запрашивает что-то под названием "libcurl", поэтому я скачал версию curl из интернета для windows xp 32bit, я положил exefile и все файлы dll в папку windows , И я попытался просто написать «curl», чтобы посмотреть, сработало ли это. Вот что я получил:

D:\>curl
curl: try 'curl --help' or 'curl --manual' for more information

И я снова написал gem install typhoeus, и я получил ту же ошибку, что и выше, что мне не хватает? Libcurl не поставляется с curl? Я остро нуждаюсь в помощи, потому что мой друг не может помочь мне, потому что он парень из Linux. Поэтому, пожалуйста, помогите мне - скажите, что нужно сделать, чтобы установить Typhoeus! (Я также пытался написать gem install typhoeus-0.2.4, но это вывело другую ошибку:

ERROR:  Could not find a valid gem 'typhoeus-0.2.4' (>= 0) in any repository

) * * тысяча двадцать-один

И я написал это, находясь в папке приложения ruby ​​on rails. Так что я потерян и очень нуждаюсь в помощи!

Заранее спасибо,
Гарри

Ответы [ 4 ]

2 голосов
/ 13 сентября 2011

У меня была похожая проблема в Windows 7, и проблема заключалась в некоторой логике в файле extconf.rb для машин с Windows. Следующие строки вызывают сообщение об ошибке need libcurl:

if Config::CONFIG['target_os'] == 'mingw32'
  header = File.join(ROOT, 'cross', 'curl-7.19.4.win32', 'include')
  unless find_header('curl/curl.h', header)
    abort "need libcurl"
  end

Вызов File.join заставляет make-файл искать каталог (cross / curl-7.19.4.win32 / include), который не включен в typhoeus, и поэтому make-файл не будет работать.

Большую часть дня я просматривал множество решений в Интернете ( эта ссылка помогла больше всего), и в конце концов нашел решение, просто изменив File.join() для использования явный путь к файлу для моего curl gem. Я редактировал файл extconf.rb дважды, один раз здесь:

if Config::CONFIG['target_os'] == 'mingw32'
  header = File.join('C:\RailsInstaller\Ruby1.9.2\lib\ruby\gems\1.9.1\gems\curl-7.19.4-devel-mingw32', 'include')
  unless find_header('curl/curl.h', header)
    abort "need libcurl"
  end

И однажды здесь:

if Config::CONFIG['target_os'] == 'mingw32'
  find_library('curl', 'curl_easy_init',
               File.join('C:\RailsInstaller\Ruby1.9.2\lib\ruby\gems\1.9.1\gems\curl-7.19.4-devel-mingw32', 'bin'))

Полагаю, вам может понадобиться DevKit , но я не уверен.

Надеюсь, это поможет!

1 голос
/ 05 июня 2011

Загрузки, предоставленные RocketR, несовместимы с последней версией Typhoeus (0.2.4). Этот комментарий на GitHub предоставил мне решение (https://github.com/dbalatero/typhoeus/issues/11#issuecomment-309957)

less involved workaround for typhoeus
0.1.29 on ruby 1.9.1 -- just give it what it wants.

----------- checking for curl/curl.h in C:/path/to/ruby/gems/1.9.1/gems/typhoeus-0.1.29/cross/curl-7.19.4.win32/include... no need libcurl
-----------

download: http://www.gknw.de/mirror/curl/win32/old_releases/curl-7.19.4-devel-mingw32.zip

mkdir C:/path/to/ruby/gems/1.9.1/gems/typhoeus-0.1.29/cross, extract, rename to curl-7.19.4.win32

gem install typhoeus, as you would normally.
1 голос
/ 04 июня 2011

Пожалуйста, попробуйте эту вилку: https://github.com/NoKarma/typhoeus/downloads Я нашел разные решения в сети, но только это сработало. Возможно, когда-нибудь они наконец исправят это, чтобы скомпилировать под Windows.

0 голосов
/ 15 июня 2012

Это больше не проблема в Ruby193 для Windows Vista / 7. Просто установите Typhoeus

gem install typhoeus

Это не дает ошибок на моем ПК Vista.

Убедитесь, что вы можете запустить curl.exe из любого места, указав путь без пробелов и с указанием пути вашего пользователя или системы.

Включите Typhoeus в свой сценарий, и все готово.

...