在捆绑宝石期间部署到Heroku失败

时间:2014-02-12 17:51:31

标签: heroku deployment gem

我正在尝试将我的应用部署到Heroku,但我收到以下错误:

   Installing mini_portile (0.5.2)
   Installing ntlm-http (0.1.1)
   Installing webrobots (0.1.1)
   Installing naturalsorter (0.2.2)
   Using pg (0.17.0)
   Using bundler (1.5.2)
   Using raindrops (0.12.0)

   Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

   /tmp/build_4fb17050-b89d-47de-afc2-a6442ad2c755/vendor/ruby-2.0.0/bin/ruby
     

extconf.rb          检查ffi.h ...没有          检查/ usr / local / include中的ffi.h,/ usr / include / ffi ... no          检查rb_thread_blocking_region()...是的          检查rb_thread_call_with_gvl()...是的          检查rb_thread_call_without_gvl()...是的          检查ffi_prep_cif_var()...没有          创建extconf.h          创建Makefile

   make "DESTDIR="
   Configuring libffi
   /tmp/build_4fb17050-b89d-47de-afc2-a6442ad2c755/vendor/bundle/ruby/2.0.0/gems/ffi-1.9.3/ext/ffi_c/libffi/configure:
     

第7774行:conftest.c:没有这样的文件或目录          /tmp/build_4fb17050-b89d-47de-afc2-a6442ad2c755/vendor/bundle/ruby/2.0.0/gems/ffi-1.9.3/ext/ffi_c/libffi/configure:   第1698行:conftest.i:没有这样的文件或目录          sed:无法读取conftest.c:没有这样的文件或目录          /tmp/build_4fb17050-b89d-47de-afc2-a6442ad2c755/vendor/bundle/ruby/2.0.0/gems/ffi-1.9.3/ext/ffi_c/libffi/configure:   第7774行:conftest.c:没有这样的文件或目录          /tmp/build_4fb17050-b89d-47de-afc2-a6442ad2c755/vendor/bundle/ruby/2.0.0/gems/ffi-1.9.3/ext/ffi_c/libffi/configure:   第1698行:conftest.i:没有这样的文件或目录          sed:无法读取conftest.c:没有这样的文件或目录          configure:error:in /tmp/build_4fb17050-b89d-47de-afc2-a6442ad2c755/vendor/bundle/ruby/2.0.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64-linux': configure: error: C preprocessor "gcc -E" fails sanity check See config.log'以获取更多详细信息          make: * [“/tmp/build_4fb17050-b89d-47de-afc2-a6442ad2c755/vendor/bundle/ruby/2.0.0/gems/ffi-1.9.3/ext/ffi_c/libffi-x86_64 -linux“/库/ libffi_convenience.a]   错误1

   Gem files will remain installed in /tmp/build_4fb17050-b89d-47de-afc2-a6442ad2c755/vendor/bundle/ruby/2.0.0/gems/ffi-1.9.3
     

进行检查。          结果记录到/tmp/build_4fb17050-b89d-47de-afc2-a6442ad2c755/vendor/bundle/ruby/2.0.0/gems/ffi-1.9.3/ext/ffi_c/gem_make.out          安装kgio(2.9.1)          安装rdiscount(2.1.7)          安装sass(3.3.0.rc.3)          安装ffi(1.9.3)时发生错误,Bundler无法继续。          在捆绑之前确保gem install ffi -v '1.9.3'成功。 ! !无法通过Bundler安装gem。 !

     

!推送拒绝,无法编译Ruby应用程序

任何想法我能做什么?

1 个答案:

答案 0 :(得分:1)

我们遇到了同样的问题:How to install ffi on Heroku

我们已将其跟踪到Compass尝试在Heroku上安装不兼容的可执行文件(FFI),而且它没有安装。这有点愚蠢的是,我们不需要在Heroku上安装FFI,因为它只是一种开发模式依赖。

Compass需要以不在生产服务器上安装不必要的gem /可执行文件的方式捆绑它的依赖项(使用add_development_dependency),或者Heroku需要允许它安装在/ tmp目录中。

不幸的是,我们还没有解决这个问题所以我们已经将代码还原为不使用Compass的测试版,我们正在考虑切换到Bourbon,它没有不必要的生产依赖。