杉本涼
sugry****@gmail*****
2014年 9月 12日 (金) 22:16:03 JST
杉本です。 Heroku用GroongaのMessagePack対応できました! ↓が試しに作成した、MessagePack対応のGroongaです。 https://github.com/sugryo/groonga/releases/tag/v4.0.5 たぶん、MessagePackに対応していると思うのですが、 心配なので、試しにやってもらえますか? 本当に対応したかを確認した方法は、↓です。 % git clone https://github.com/okamuuu/test-heroku-groonga % cd test-heroku-groonga % heroku create --buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/sugryo/groonga.tgz % git push heroku master % heroku run '~/vendor/groonga/bin/groonga ~/groonga/database status --output_type json' % heroku run '~/vendor/groonga/bin/groonga ~/groonga/database status --output_type msgpack' 僕が作成した、buildpackじゃないと僕が試しに作成したGroongaを使ってくれないので、 僕のbuildpackを使っています。 https://github.com/okamuuu/test-heroku-groonga/blob/master/README.mdには、 最後のコマンドを実行すると、MessagePackに対応していないため、 何も返ってこないらしいのですが、僕の環境では、文字かけしつつも返ってくるので、 対応していると思いました。 ↓は、自分の環境で実行した結果です % heroku run '~/vendor/groonga/bin/groonga ~/groonga/database status --output_type json' Running `~/vendor/groonga/bin/groonga ~/groonga/database status --output_type json` attached to terminal... up, run.3107 [[0,1410515834.97844,0.000130653381347656],{"alloc_count":141,"starttime":1410515834,"uptime":0,"version":"4.0.5","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}] % heroku run '~/vendor/groonga/bin/groonga ~/groonga/database status --output_type msgpack' Running `~/vendor/groonga/bin/groonga ~/groonga/database status --output_type msgpack` attached to terminal... up, run.5128 ���A� ����c�? ���alloc_count̍�starttime�T Ï�uptime�version�4.0.5�n_queries�cache_hit_rate��command_version �default_command_version �max_command_version 2014年8月31日 19:48 Kouhei Sutou <kou****@clear*****>: > 須藤です。 > > In <CAH9Y0y48qbmw1fQxiGeCjY9BP=d_mSg_akCLb****@mail*****> > "[groonga-dev,02720] Re: [ANN] Groonga 4.0.5" on Sat, 30 Aug 2014 > 10:20:37 +0900, > 杉本涼 <sugry****@gmail*****> wrote: > > > ↓が実行した結果です。 > > tar: Record size = 16 blocks > > vendor/groonga/ > > vendor/groonga/lib/ > > vendor/groonga/lib/libgroonga.so > > vendor/groonga/lib/libgroonga.la > > vendor/groonga/lib/pkgconfig/ > > vendor/groonga/lib/pkgconfig/groonga.pc > > vendor/groonga/lib/libgroonga.so.0 > > vendor/groonga/lib/libgroonga.so.0.0.0 > ... > > > > MessagePackのライブラリーが含まれていないと思うのですがどうですか? > > はい、含まれていないですね。 > > 少し整理しましょうか。 > > Heroku用GroongaがMessagePackに対応しているためには次の状態に > なっている必要があります。 > > 1. libgroonga.soがlibmsgpack.so > <http://libgroonga.xn--solibmsgpack-433k.so>をリンクしている > 2. tar.xzにlibgroonga.so <http://tar.xn--xzlibgroonga-ng4k.so> > もlibmsgpack.soも含まれている > 3. LD_LIBRARY_PATHのパスの中にlibgroonga.soもlibmsgpack.so > <http://libgroonga.xn--solibmsgpack-6o4k.so> > も含まれている > > ここまでが期待する状態(ゴール、目指すところ)です。 > > で、それぞれ次のように確認できます。 > > 1.はlddを使うと確認できます。 > > % ldd vendor/groonga/lib/libgroonga.so > > この結果の中にlibmsgpack.soが含まれていればlibgroonga.so > <http://libmsgpack.xn--solibgroonga-503ksd7rlftjjjc9843p.so>は > libmsgpack.soをリンクしています。 > > 2.は今回やったようにtar xvfの結果などで確認できます。 > > 3.もlddで確認できます。LD_LIBRARY_PATHに.soが含まれていない > と > > % ldd vendor/groonga/lib/libgroonga.so > > の結果の中で、「not found」と言われます。 > > あるいは、実際にlibgroonga.soを使ったアプリケーションを実行し > てエラーにならないかを確認するという方法もあります。.soが見 > つからないとlibgroonga.soを読み込もうとしたときにエラーにな > ります。 > > > ここまでが期待する状態の確認方法(テスト方法)です。 > これで期待する状態を確認できたらOK!ということですね。 > > たぶん、1.はすでに解決しているはずです。 > > > なお、1.と2.はheroku-groonga-builderの範囲で、3.は > heroku-buildpack-groongaの範囲です。 > > > で、2.と3.の実現方法案ですが、私は2つの方法があると思います。 > (試していないので抜けがあるかもしれません。) > > a. MessagePackのconfigureの--prefixをGroongaと同じ > (vendor/groonga)にする > b. > * tar cJfするときにmsgpack_prefixも指定してtar.xzに > vendor/msgpack以下も含める > * heroku-buildpack-groognaを変更してvendor/msgpack/lib/ > もLD_LIBRARY_PATHに加える > > a.の方は変更点が少ないのが利点です。 > > b.の方はGroonga関連のファイルとMessagePack関連のファイルを分 > けているのでそれぞれを別個に扱えるというのが利点です。 > > > 個人的にはどちらでもよいと思っています。作り手の意図次第でど > ちらを選んでもよいということですね。私は、a.で作られていたら、 > 作り手の意図は「MessagePackもGroonga(を動かすために必要なも > の)の一部と捉えている」と感じ、b.ならそうでないと感じます。 > > > 整理するとこんな感じな気がします。解決できそうでしょうか!? > > > > -- > 須藤 功平 <kou****@clear*****> > 株式会社クリアコード <http://www.clear-code.com/> > > Groongaベースの全文検索システムを総合サポート: > http://groonga.org/ja/support/ > パッチ採用 - プログラミングが楽しい人向けの採用プロセス: > http://www.clear-code.com/recruitment/ > コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: > http://www.clear-code.com/services/code-reader/ > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev >