OS X上のPostgreSQLデータベースに対してtextsearch_ja(9.0.0)をビルドしてインストールした。その後、全文検索を使えるようにするために、textsearch_ja.sqlを実行すると以下のエラーが出た。
PGError: ERROR: mecab: tagger.cpp(150) [load_dictionary_resource(param)] param.cpp(71) [ifs] no such file or directory: ./dicrc
なお、ビルドの前提として、mecabとmecab-ipadicはHomeBrewでインストールしてある。
ライブラリ(textsearch_ja.so)のインストール自体は成功していると思われるが、辞書の設定ファイルを見つけられないらしい。
調べたところ、ビルド時に既にインストールされていた、別のmecabをリンクしていたようだ(同様の症状の人は見あたらなかったので、もしかするとportの残骸なのかもしれない)。
/usr/lib/libmecab.dylib
ということで、textsearch_jaのMakefileに以下を追加して、使用するmecabライブラリの位置を指定できるようにした。
# specify mecab lib dir
ifdef MECAB_LIB
LDFLAGS += -L$(MECAB_LIB)
endif
再度ビルドしてインストールする。
$ USE_PGXS=1 make clean
$ MECAB_LIB=/usr/local/Cellar/mecab/0.994/lib USE_PGXS=1 make
$ USE_PGXS=1 make install
これで、HomeBrewのmecabを使ってビルドされ、無事にtextsearch_ja.sqlを実行できるようになった。
以下バージョン情報(全てHomeBrewでインストール)
postgresql: 9.0.4
mecab: 0.994
mecab-ipadic: 2.7.0-20070801