3

thinking-sphinx-raspellジェムを使用して、私たちのウェブサイトでの検索に「もしかして」の提案を許可したいと考えています。私の開発マシン (Mountain Lion) では動作しますが、Heroku Cedar にデプロイするのに苦労しています。

gem はaspellに依存するraspell gem に依存します。aspell は Heroku Cedar スタックに含まれていないため、Vulcan を使用して Heroku マシンでコンパイルし、バイナリを git リポジトリに追加してから Heroku にプッシュしています。手順については、こちらで詳しく説明しています。

これにより、バンドラー フェーズでエラーが発生します。

Installing raspell (1.3)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/bin/ruby extconf.rb
checking for ruby.h... yes
checking for aspell.h... no
checking for main() in -laspell... no
creating Makefile
make
gcc -I. -I/usr/local/include/ruby-1.9.1/x86_64-linux -I/usr/local/include/ruby-1.9.1/ruby/backward -I/usr/local/include/ruby-1.9.1 -I. -DHAVE_RUBY_H -I/opt/local/include    -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long  -o raspell.o -c raspell.c
In file included from raspell.c:2:
raspell.h:6:20: error: aspell.h: No such file or directory

私の理解が正しければ、この aspell.h への依存関係はraspell gem のextconf.rbに設定されています。

have_header("aspell.h")

そのヘッダー ファイルをプロジェクトの bin ディレクトリに配置しました。最適な場所ではありませんが、それは問題ではないと思います。これは/app/bin、Heroku ファイル システムに対応します。このパスを に追加しPATHC_INCLUDE_PATHCPLUS_INCLUDE_PATHも設定CFLAGSしました-I/app/bin

私が間違っていることは何ですか?それとも、Heroku ではうまくいかないことを試しているのでしょうか?

4

1 に答える 1

0

Heroku のビルドパックを調べましたか? https://devcenter.heroku.com/articles/buildpacks

スタックをカスタマイズする方法のようです。(あなたが質問した後に導入された可能性があります。)

于 2014-03-08T03:02:42.923 に答える