0

私のRailsアプリは、ローカルホストを介して私のマシンで完全に機能しますが、Herokuにデプロイすると、次のエラーリストが表示されます。

2012-11-11T04:59:20+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -R config.ru -e production -p 38941`
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/ffi-inline-0.0.4/lib/ffi/inline/builders/c.rb:114:in `shared_object'
2012-11-11T04:59:33+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/ffi-inline-0.0.4/lib/ffi/inline/compilers/gcc.rb:29:in `compile': compile error: see logs at /tmp/.ffi-inline-18803/85aad7364f11885370e58c4391df70e29ef22bbe.log (CompilationError)
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/ffi-inline-0.0.4/lib/ffi/inline/builders.rb:87:in `instance_eval'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/ffi-inline-0.0.4/lib/ffi/inline/builders.rb:87:in `build'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/ffi-inline-0.0.4/lib/ffi/inline/inline.rb:39:in `inline'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/ffi-inline-0.0.4/lib/ffi/inline/inline.rb:54:in `singleton_inline'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/tesseract-ocr-0.1.5/lib/tesseract/c.rb:34:in `<module:C>'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/tesseract-ocr-0.1.5/lib/tesseract/c.rb:31:in `<module:Tesseract>'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/tesseract-ocr-0.1.5/lib/tesseract/c.rb:29:in `<top (required)>'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `block in require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:236:in `load_dependency'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/tesseract-ocr-0.1.5/lib/tesseract/api.rb:26:in `<top (required)>'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/ffi-inline-0.0.4/lib/ffi/inline/builders.rb:90:in `block in build'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/tesseract-ocr-0.1.5/lib/tesseract-ocr.rb:35:in `<top (required)>'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/bundler-1.2.1/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/bundler-1.2.1/lib/bundler/runtime.rb:66:in `each'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `block in require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:236:in `load_dependency'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/bundler-1.2.1/lib/bundler/runtime.rb:68:in `require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/bundler-1.2.1/lib/bundler/runtime.rb:55:in `each'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/bundler-1.2.1/lib/bundler/runtime.rb:55:in `require'
2012-11-11T04:59:33+
00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/bundler-1.2.1/lib/bundler.rb:128:in `require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/config/application.rb:7:in `<top (required)>'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/config/environment.rb:2:in `require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/bundler-1.2.1/lib/bundler/runtime.rb:66:in `block in require'
2012-11-11T04:59:33+00:00 app[web.1]:   from config.ru:3:in `require'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/config/environment.rb:2:in `<top (required)>'
2012-11-11T04:59:33+00:00 app[web.1]:   from config.ru:3:in `block in <main>'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/controllers/controller.rb:181:in `load_rackup_config'
2012-11-11T04:59:33+00:00 app[web.1]:   from config.ru:1:in `new'
2012-11-11T04:59:33+00:00 app[web.1]:   from config.ru:1:in `<main>'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/bin/thin:6:in `<top (required)>'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/thin:19:in `load'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/thin:19:in `<main>'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/rack/adapter/loader.rb:33:in `eval'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/rack/adapter/loader.rb:33:in `load'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/controllers/controller.rb:71:in `start'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/runner.rb:185:in `run_command'
2012-11-11T04:59:33+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/runner.rb:151:in `run!'
2012-11-11T04:59:34+00:00 heroku[web.1]: Process exited with status 1
2012-11-11T04:59:38+00:00 heroku[router]: Error H10 (App crashed)

Herokuが使用しているRubyTesseractの宝石に問題がある可能性があることを除けば、これの頭や尾を作ることはできないようです。多分依存関係の問題?

アップデート:

さらに検索したところ、この問題はTesseractの宝石に関連していることがわかりました

サポートチケットによると、これらのパスを設定する必要があります...

ENV['CFLAGS'] = '-I/path/to/the/headers'
ENV['LDFLAGS'] = '-L/path/to/the/libs'

...しかし、それらを設定する方法や、HerokuにデプロイされたRailsアプリで実際にヘッダー/ライブラリへのパスを設定する方法がわかりません。洞察はありますか?

4

2 に答える 2

3

これに関して、Herokuから私が彼らと一緒に調達したチケットへの返信は次のとおりです。


こんにちは、

残念ながら、スタックへの追加のライブラリまたはバイナリのインストールはサポートされていません。最善の回避策は、これらをプロジェクトにベンダー化することです。Herokuで動作させるには、64ビットのLinuxバージョンを使用する必要があります。静的にコンパイルすると、必要な依存関係が含まれていることを確認するのにも役立ちます。同様に、外部ライブラリに依存するgemの場合、gemを静的にコンパイルし、プロジェクトにベンダー化することをお勧めします。

これは簡単な作業ではなく、作業を開始するのが非常に難しい場合があることを認識しており、将来的にはこれを行うためのより簡単な方法を提供したいと考えています。残念ながら、この改善された機能がいつ利用可能になるかについてのETAはありません。

バイナリ、ライブラリ、またはgemのベンダーを希望する場合は、ビルド環境としてHerokuを使用できます。エンジニアの1人が、ソースコードをアップロードし、コンパイルステップを実行して、結果のバイナリをダウンロードできるビルドサーバーを作成しました。このプロジェクトはここで見つけることができます: https ://github.com/heroku/vulcan

ありがとう、Herokuサポート


つまり、別の場所に移動して展開します。

于 2012-11-20T00:07:33.450 に答える
1

私も同じ問題に直面しているので、お互いに助け合えることを願っています。

Herokuでconfigvarを設定する方法を見つけました。githubに関するmehのコメントによると、HerokuにTesseractをインストールする必要があるようです。おそらく、Herokuにインストール場所を尋ねることができますか?

また、この他の宝石がHerokuへの統合に成功していることもわかりました。残念ながら、それでもまだtesseract2.04を使用しています。

于 2012-11-12T07:57:49.143 に答える