ZXing / FFI / Spoon Gem引起的Heroku错误

时间:2012-01-05 19:05:32

标签: ruby-on-rails heroku gem zxing ffi

我目前正在开发一个需要ZXing gem(http://rubydoc.info/gems/zxing/0.3.1/frames)来解码条形码图像的项目。在我尝试在本地安装gem时,我遇到了一些依赖关系的复杂问题,但是通过将ffi(http://rubygems.org/gems/ffi)和spoon(http://rubygems.org/gems/spoon)宝石添加到我的问题中解决了这些问题。 Gemfile,除了jruby-jar。现在,一切都在我的本地机器上运行良好(iMac和MacBook Pro都运行Lion)。但是,当我尝试将应用程序推送到Heroku时,终端会挂在以下几行上几分钟:

-----> Writing config/database.yml to read from DATABASE_URL

然后最后给我错误信息:

/app/slug-compiler/lib/utils.rb:62:in `block (2 levels) in spawn': command='/app/slug-compiler/lib/../buildpacks/ruby/bin/compile /tmp/build_31wo219fllz4d /app/tmp/repo.git/.cache' exit_status=0 out='' event=timeout elapsed=581.3388702869415 (Utils::TimeoutError)
    from /app/slug-compiler/lib/utils.rb:48:in `loop'
    from /app/slug-compiler/lib/utils.rb:48:in `block in spawn'
    from /app/slug-compiler/lib/utils.rb:44:in `popen'
    from /app/slug-compiler/lib/utils.rb:44:in `spawn'
    from /app/slug-compiler/lib/buildpack.rb:35:in `block in compile'
    from /app/slug-compiler/lib/buildpack.rb:33:in `fork'
    from /app/slug-compiler/lib/buildpack.rb:33:in `compile'
    from /app/slug-compiler/lib/slug.rb:464:in `block in run_buildpack'
    from /app/slug-compiler/lib/utils.rb:117:in `log'
    from /app/slug-compiler/lib/slug.rb:702:in `log'
    from /app/slug-compiler/lib/slug.rb:463:in `run_buildpack'
    from /app/slug-compiler/lib/slug.rb:107:in `block (2 levels) in compile'
    from /app/slug-compiler/lib/utils.rb:98:in `block in timeout'
    from /usr/local/lib/ruby/1.9.1/timeout.rb:58:in `timeout'
    from /app/slug-compiler/lib/utils.rb:98:in `rescue in timeout'
    from /app/slug-compiler/lib/utils.rb:93:in `timeout'
    from /app/slug-compiler/lib/slug.rb:96:in `block in compile'
    from /app/slug-compiler/lib/utils.rb:117:in `log'
    from /app/slug-compiler/lib/slug.rb:702:in `log'
    from /app/slug-compiler/lib/slug.rb:95:in `compile'
    from /app/slug-compiler/bin/slugc:85:in `block in <main>'
    from /app/slug-compiler/lib/slug.rb:472:in `block in lock'
    from /app/slug-compiler/lib/repo_lock.rb:44:in `call'
    from /app/slug-compiler/lib/repo_lock.rb:44:in `run'
    from /app/slug-compiler/lib/slug.rb:472:in `lock'
    from /app/slug-compiler/bin/slugc:66:in `<main>'
 !     Heroku push rejected, failed to compile Ruby/rails app

To git@heroku.application-testing-account:integrating-zxing-on-heroku.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.application-testing-account:integrating-zxing-on-heroku.git'

问题似乎是由ZXing gem和/或其依赖项(ffi,spoon)引起的。如果我从我的Gemfile中删除zxing,Heroku编译应用程序,一切正常。重新添加宝石后,我遇到了同样的问题。我也尝试在我的application.rb中将config.assets.initialize_on_precompile设置为true和false,但无济于事。我现在该怎么办了。

我的应用程序位于Cedar堆栈上,并在开发和生产中使用PostgreSQL。

有人可以提出任何建议吗?

1 个答案:

答案 0 :(得分:0)

是的,遗憾的是,您无法使用C ++或Java依赖项。我很难找到一个纯粹红宝石的QR解码器(效果很好)。