MeCabのインストールをUbuntu以外のLinux(OpenSUSE)から行う場合、こちらのインストール方法を参考にソースからコンパイルする必要があると思います。
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行目のlibexecをlibに書き換えて保存します。
$ 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を開いてlibをlib64に修正します。
$ sudo vim /usr/local/etc/mecabrc [修正前] dicdir = /usr/local/lib/mecab/dic/ipadic [修正後] dicdir = /usr/local/lib64/mecab/dic/ipadic
これでなんとか動くようになりました。
めんどくさ〜。
追記 2019/01/11
この方法だと,結局ipadic-NEologdをインストールするときにも再度同じように編集する必要が出てくるため,他の方法を考えました.
それは,以下のコマンドです.
$ sudo cp -r /usr/local/lib/mecab/ /usr/local/libexec/
つまり,デフォルトでインストールされたMeCabを必要とされるパスにコピーします.
libexec下にコピーしたmecabはディクショナリのコンパイルのときだけ使われます.
これでipadicでもipadic-NEologdでもうまく行きました.
必要なくなったら消してもいいかもしれません.
本当はその都度使うmecabのパスを指定したり,書き換えて辞書をインストールするほうがいいのでしょうが,せっかく製作者様がかんたんにインストールできるようにしてくれいるものを書き換えるのは不安であり,書き換えたことが次のエラーに直結するかもしれず怖いので,今回はこのような方法を取りました.