我正在尝试将我的应用部署到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] 错误1Gem 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应用程序
任何想法我能做什么?
答案 0 :(得分:1)
我们遇到了同样的问题:How to install ffi on Heroku
我们已将其跟踪到Compass尝试在Heroku上安装不兼容的可执行文件(FFI),而且它没有安装。这有点愚蠢的是,我们不需要在Heroku上安装FFI,因为它只是一种开发模式依赖。
Compass需要以不在生产服务器上安装不必要的gem /可执行文件的方式捆绑它的依赖项(使用add_development_dependency
),或者Heroku需要允许它安装在/ tmp目录中。
不幸的是,我们还没有解决这个问题所以我们已经将代码还原为不使用Compass的测试版,我们正在考虑切换到Bourbon,它没有不必要的生产依赖。