2011-01-18 3 views
4

Я получаю сообщение об ошибке при попытке установить драгоценный камень под названием typhoeus (это используется в книге «Ориентированный на обслуживание дизайн с рельсами»). Я пробовал много вещи, чтобы попытаться получить это исправлено, но я ударил кирпичную стену и отправляю здесь в надежде, что кто-то может помочь.gem install typhoeus - не удалось построить расширение gem

Вот результат:

$ gem install typhoeus 

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

/Users/my.name/.rvm/rubies/ruby-1.8.7-p302/bin/ruby extconf.rb 
checking for curl/curl.h in /opt/local/include,/opt/local/include/curl,/Users/my.name/.rvm/rubies/ruby-1.8.7-p302/include/curl,/Users/my.name/.rvm/rubies/ruby-1.8.7-p302/include,/usr/include/curl,/usr/local/include/curl... yes 
checking for curl_easy_init() in -lcurl... yes 
creating Makefile 

make 
gcc -I. -I. -I/Users/my.name/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/i686-darwin10.5.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -g -O2 -fno-common -pipe -fno-common -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -c native.c 
In file included from /usr/local/include/curl/curl.h:35, 
       from ./native.h:5, 
       from native.c:1: 
/usr/local/include/curl/curlrules.h:143: error: size of array ‘__curl_rule_01__’ is negative 
make: *** [native.o] Error 1 

Я использую RVM с рубином-1.8.7-P302 на OS X Snow Leopard с последними XCode Tools.

От поиска Я попытался сделать различные вещи, например, попробовать установить драгоценный камень под другие рубиновые версии, которые у меня есть (ree-1.8.7-2010.02, ruby-1.9.2-head и system ruby) , передать флаги архитектуры (x86_64 или i386) для аргумента ARCHFLAGS и т. д.

Я новичок в рубине, поэтому любая помощь будет принята с благодарностью, спасибо!

+0

Я также хотел бы знать, как удалить драгоценный камень в сломанном состоянии, как тот, который вы описали. 'gem uninstall x' не работает, потому что камень не установлен полностью. –

ответ

2

Не уверен, но кажется, что ваша система не совсем такая, как ожидает источник драгоценных камней.

С его использованием curl и от этого old problem я бы предположил, что ваш завиток нуждается в обновлении.

ли система, установленная завиток, или вы используете MacPorts - возможно, его стоит делать обновления ...

В качестве альтернативы вы можете попробовать установить на недавней * NIX системы - которые могут работать и так подтвердить его проблема окружающей среды.

Из github page, есть некоторые замечания о том, как использовать его со старым локон ...

Успехов, Крис

+0

Спасибо за ссылки, что касается curl, я считаю, что у меня последняя версия, это от «curl -V»: curl 7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9 .8l zlib/1.2.3 Протоколы: tftp ftp telnet dict ldap http file https ftps Особенности: GSS-Negotiate IPv6 Largefile NTLM SSL libz – Folken

+0

Я попытался добавить определение, что ссылка (http://curl.haxx.se/почта/Lib-2008-09/0051.html), но это не помогло :( – Folken

+0

Я добавил '#define CURL_SIZEOF_LONG 8' без ifdef, окружающего его curlrules.h, и это позволило установить typhoeus. Однако есть заметка в файле о массиве отрицательный: «Если вы создаете приложение, которое пытается использовать уже созданную библиотеку libcurl, и вы получаете такие ошибки в этом файле, это явный признак того, что существует несоответствие между тем, как была построена библиотека и как вы пытаются использовать его для вашего приложения. Ваш уже скомпилированный или бинарный библиотечный провайдер является единственным, кто может предоставить вам информацию, необходимую для правильного использования. ' – Folken

2

его Libcurl проблема, так как Typhoeus нужен заголовок и материал для компиляции. и у него проблемы.

libcurl-dev ИЛИ libcurl3-dev установлен?

+0

Я сделал «финку» list curl -i 'и придумал следующие: libcurl3, libcurl3-shlibs, libcurl3-ssl, libcurl3-ssl ..., libcurl3-uni ..., libcurl3-uni ..., libcurl4, libcurl4-shlibs, libcurlpp0, libcurlpp0-s ... - так как libcurl-dev и libcurl3-dev нет, я собираюсь понять, что это не в моей системе. – Folken

19

Не уверен, что это так же на Mac, но у меня была такая же проблема с Ubuntu.

sudo apt-get install curl 

sudo apt-get install libcurl3 libcurl3-dev 

sudo gem install typhoeus 

работал для меня, но только после установки Libcurl библиотекам

Спасибо.

+0

Спасибо, это сработало для меня в Ubuntu. –

+0

также работает на Kali linux – DoodleKana

9

Вы только на самом деле нужно libcurl3-Dev:

sudo apt-get install libcurl3-dev 
sudo gem install typhoeus 

должен работать нормально.

+0

спасибо большое, сейчас он работает! – juanpastas

Смежные вопросы