Mac + macports + mecab な mecab-ruby が segmentation fault で落ちる対策
Mac + macports + mecab な mecab-ruby が segmentation fault で落ちる対策
ググってもセグフォで落ちてる人は見かけるも対策が書かれてるところが一件も無かったのでメモ残します。具体的に発生する環境が
- mac
- macports の mecab 利用
- macports 以外(/opt/local にパスがある) ruby を使ってmecab-ruby の利用
な環境で発生する。これは mecab-ruby の extconf.rb が macports の mecab(mecab-config なのかな)だと適切なライブラリパスが出力されないためっぽいので本来は extconf.rb をちゃんと動くようにしてパッチ送るべきだけど、適切な書き方が解らなかったのでパッチ送れず…
対策は、extconf.rb 実行時にきちんと
ruby extconf.rb --with-opt-dir=/opt/local
として明示的に /opt/local を指すと直る。bundler 利用時には
bundle config build.mecab-ruby --with-opt-dir=/opt/local
で設定する。bundle config build.xxx なんてあるんだーベルリン(便利)。