環境
Antergos Linux
概要
形態素解析やってみたいと思ってMecabをインストール
公式ドキュメントの通りにインストールするとなんかエラーが出た
[make-mecab-ipadic-NEologd] : Re-Index system dictionary
./libexec/make-mecab-ipadic-neologd.sh: line 492: /usr/libexec/mecab/mecab-dict-index: No such file or directory
1時間くらいいじり倒した結果とその過程をメモ
とりあえず
エラーを読むとmecab-dict-indexがないらしいのでfindしてみよう
$sudo find / -name mecab-dict-index
中略
/usr/lib/mecab/mecab-dict-index
$
パスが違うだけでファイルはあるようだ
推測
他の環境のことはよくわかんないけど/usr/libexec/mecabってフォルダは私の環境にはない
代わりに/lib/mecabならある
こいつを指定してあげればいいんじゃないのか
インストールスクリプトをチェック
まず mecab-ipadic-neologd/libexec/make-mecab-ipadic-neologd.shの492行目あたりを見る
echo "${ECHO_PREFIX} Re-Index system dictionary"
${MECAB_LIBEXEC_DIR}/mecab-dict-index -f UTF8 -t UTF8
$MECAB_LIBEXEC_DIRってのがおかしい気がする
103行目に飛んでみると
MECAB_LIBEXEC_DIR=`${MECAB_PATH}-config --libexecdir
$MECAB_PATHってなんだ?
101行目辺りに
MECAB_PATH=`which mecab`
って書いてある
つまりmecab-configっていうコマンドに--libexecdirっていう引数を与えた結果がMECAB_LIBEXEC_DIR
コマンドでインストールパスを管理している的なニュアンスだろうか
結論
私の環境では
$mecab-config --libexecdir
/usr/libexecdir/mecab
となるんだけど実際に欲しいファイルは/lib/mecabにあるので
無理やりmecab-ipadic-neologd/libexec/make-mecab-ipadic-neologd.shの103行目の
MECAB_LIBEXEC_DIR=`${MECAB_PATH}-config --libexecdir`
を
MECAB_LIBEXEC_DIR="/lib/mecab"
と書き換えたらインストールがうまくいった
感想
まだペーペーの私にとってはなかなかハードルが高かった。
こういったことへの対処が経験値の向上に繋がっていくのかもしれないと感じた。