その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

[令和最新]Resemblaをビルドして動かす方法

github.com

類似文字列検索ライブラリであるところのResemblaですが、利用に際してはビルド済みのパッケージが配布されていないため自分でビルドする必要があります。
が、Wikiに書かれているインストールドキュメントがCentOS 7のものになっており *1 、現代の環境で動かすにあたってはちょっと工夫が必要……ということで、2025年現代の環境で動作するDockerfileをここに共有します。

gist.github.com

ポイントとしては

  • mecab-ipadicではなくmecab-ipadic-utf8 を使う (thanks id:tomo_ari and id:ssig33)
  • icuのバージョンは59.1で固定
  • grpcのバージョンはv1.2.5で固定
    • 新しめのgccだとgettidがバッティングしてgrpcがビルドできないので、コードから除去するワークアラウンドを入れる
    • 新しめのgccだと警告出まくってビルドできないのでC++標準バージョンを下げつつ警告を無視してmake: make CFLAGS="-w -std=c11" CXXFLAGS="-w -std=c++14"
  • Resemblaのビルドに際しても新しめのgccだとエラーが出るのでcstddefをincludeするようにワークアラウンドを入れる *2

という感じでしょうか。このようにしておくと動き、grpcを使ったインターフェイスも動作するところまで持ってゆくことができます。

mecab-unidicをインストールしたい場合、こちらにもちょっとコツが必要なので頑張りましょう:

github.com

以上です。ご活用ください。