HarukaのMEMO

Linuxやプログラミング関係の備忘録

MeCabインストール時の「make: /usr/local/libexec/mecab/mecab-dict-index: コマンドが見つかりませんでした」エラー

MeCabのインストールをUbuntu以外のLinuxから行う場合、こちらのインストール方法を参考にソースからコンパイルする必要があると思います。
MeCabのインストールはうまく行くのですが、ipadicのインストールの際にエラーが発生しました。
バージョンも数年前から変わっていないと思うのですが、今更初めてのエラーが出ましたので対策を残しておきます。

エラー内容

/usr/local/libexec/mecab/mecab-dict-index -d . -o . -f EUC-JP -t utf8
make: /usr/local/libexec/mecab/mecab-dict-index: コマンドが見つかりませんでした
make: *** [Makefile:253: matrix.bin] エラー 127

原因

どうやらipadicのmake時に必要な/usr/local/libexec/mecab/mecab-dict-indexが存在しないとのことでした。
mecab_0.966のインストール時に作成されるディレクトリに上記のようなものは存在しません。
一応以下のコマンドで調べますと、

$ sudo find  /usr/ -name mecab-dict-index
  /usr/local/lib/mecab/mecab-dict-index

libexecではなくlib下にあることがわかります。

解決方法

解決方法は./configureで作成したipadicのMakefileをエディタで開き、70行目と79行目のlibexeclibに書き換えて保存します。

$ vim Makefile
  70: MECAB_DICT_INDEX = /usr/local/lib/mecab/mecab-dict-index

  79: mecab_dict_index = /usr/local/lib/mecab/mecab-dict-index

後は、普通にmakeが通ると思います。
その後sudo make installして、mecabコマンドを打つと、更にエラーが出ました。

エラー内容

$ mecab
   param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc

ちょっと使わない間にどんだけエラー出るんようになったんやって思いながらこれも修正できました。

解決策

/usr/local/etc/mecabrcを開いてliblib64に修正します。

$ sudo vim /usr/local/etc/mecabrc 
   [修正前]  dicdir =  /usr/local/lib/mecab/dic/ipadic
   [修正後]  dicdir =  /usr/local/lib64/mecab/dic/ipadic

これでなんとか動くようになりました。

めんどくさ〜。