【问题标题】:gem install typhoeus - failed to build gem extensiongem install typhoeus - 未能构建 gem 扩展
【发布时间】:2011-01-18 08:19:41
【问题描述】:

我在尝试安装名为 typhoeus 的 gem 时收到一个错误(这用于遵循“使用 Rails 的面向服务的设计”一书) - 我尝试了很多方法来解决这个问题,但我碰壁了,我在这里发帖希望有人能提供帮助。

这是输出:

$ 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

我在 OS X Snow Leopard 上使用带有 ruby​​-1.8.7-p302 的 rvm 和最新的 XCode 工具。

通过四处搜索,我尝试做各种事情,例如尝试在我拥有的其他 ruby​​ 版本(ree-1.8.7-2010.02、ruby-1.9.2-head 和系统 ruby​​)下安装 gem,为 ARCHFLAGS 参数传入架构标志(x86_64 或 i386)等。

我是 ruby​​ 的新手,非常感谢任何帮助,谢谢!

【问题讨论】:

  • 我还想知道如何卸载像您描述的那样处于损坏状态的 gem。 gem uninstall x 似乎不起作用,因为 gem 没有完全安装。

标签: ruby-on-rails ruby rubygems installation rvm


【解决方案1】:

不确定这在 Mac 上是否相同,但我在 Ubuntu 上遇到了同样的问题。

sudo apt-get install curl  

sudo apt-get install libcurl3 libcurl3-dev

sudo gem install typhoeus 

为我工作,但仅在安装 libcurl 库之后

谢谢。

【讨论】:

    【解决方案2】:

    你实际上只需要 libcurl3-dev:

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

    应该可以正常工作。

    【讨论】:

      【解决方案3】:

      不确定,但您的系统似乎与 gem 源所期望的不太一样。

      由于它使用 curl 并且来自这个 old problem,我猜你的 curl 需要更新。

      是系统安装了 curl,还是你在使用 macports - 也许值得更新...

      或者,您可以尝试在最近的 *nix 系统上安装 - 这可能有效,因此确认它是环境问题。

      来自github page,有一些关于如何将它与旧卷曲一起使用的注释...

      祝你好运,克里斯

      【讨论】:

      • 感谢链接,至于 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 文件 https ftps 特点:GSS-Negotiate IPv6 Largefile NTLM SSL libz
      • 我尝试添加链接 (curl.haxx.se/mail/lib-2008-09/0051.html) 建议的定义,但没有任何区别:(
      • 我在 curlrules.h 中添加了 '#define CURL_SIZEOF_LONG 8' 而没有围绕它的 ifdef,这样就可以安装 typhoeus。但是文件中有一条关于数组是否定的注释:'如果您正在构建一个尝试使用已构建的 libcurl 库的应用程序,并且您在此文件上遇到此类错误,则清楚地表明存在库的构建方式与您尝试将其用于您的应用程序的方式之间的不匹配。您已经编译或二进制库的提供者是唯一可以为您提供正确使用它所需的详细信息的提供者。'
      • 很高兴听到你至少进步了:)
      【解决方案4】:

      它的 libcurl 问题,因为 typhoeus 需要头文件和东西来编译。它有问题。

      安装了 libcurl-dev 或 libcurl3-dev?

      【讨论】:

      • 我做了一个'fink list curl -i'并想出了这些:libcurl3、libcurl3-shlibs、libcurl3-ssl、libcurl3-ssl...、libcurl3-uni...、libcurl3- uni...、libcurl4、libcurl4-shlibs、libcurlpp0、libcurlpp0-s... -- 因为 libcurl-dev 和 libcurl3-dev 不存在,我将假设它不在我的系统上。
      猜你喜欢
      • 2019-06-20
      • 2013-06-27
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2011-05-17
      • 2015-07-20
      • 2015-06-18
      相关资源
      最近更新 更多