Macでinstall.packagesでRMeCabをインストールしてそのまま使うとRStudioが爆死する(タイトル)
※数日前のできごとなのでエラーの詳細とか曖昧です。すみません…
先日オフラインのWindows環境にRMeCabを導入する話を書きました。
ただ、オンライン環境(普段使ってる方)のMacの方にRMeCabを入れてなかった(本末転倒じゃん)ということをすっかり忘れていたので、入れました。
http://rmecab.jp/wiki/index.php?RMeCab
こちらを参考にして、
install.packages("RMeCab", repos = "http://rmecab.jp/R", type = "source")
インストールが完了してRMeCabを入れて実行すると、懐かしの爆弾が出てRStudioが落ちるという事案が発生。
ターミナルの方でRを立ち上げてやってみると、うろ覚えだが下リンク先の質問と同じようなエラーが。
‘memory not mapped’
ググっても↑のリンクくらいしか有用なヒントは見当たらず、結局結論としては先程の質問に対する一番下のコメントが解決策であった。
Macには/usr/lib/にlibmecab.dylibがあり、これがリンクされてしまうようです。 ls -l /usr/lib/libmecab* -rwxr-xr-x 1 root wheel 2536912 4 29 2017 /usr/lib/libmecab.1.0.0.dylib lrwxr-xr-x 1 root wheel 20 4 28 2017 /usr/lib/libmecab.dylib -> libmecab.1.0.0.dylib -rwxr-xr-x 1 root wheel 6302048 4 29 2017 /usr/lib/libmecabra.dylib export LD_LIBRARY_PATH=/usr/local/lib としてからRを起動しても同じでした。 http://rmecab.jp/R/にあるソースコードをダウンロードし、RMeCab/src/MakevarsのMECABの行に-L/usr/local/libを加えて、 > install.packages(“RMeCab”, repos = NULL, type = “source”) としてローカルディレクトリからインストールすると、RMeCabCが正常に動きました。
とのこと。たしかにls -l /usr/lib/libmecab*
したらそうなるな…ただ
http://rmecab.jp/R/にあるソースコードをダウンロード
とあるがここのソースコードがどこにあるのかわからない…
とりあえず石田先生のgithubにレポジトリがあるのでここを見てみる。
https://github.com/IshidaMotohiro/RMeCab
件の/src/Makevars
にはすでに-L/usr/local/lib
が加えられているので、とくに自分で追記しなくてもいいらしい。
https://github.com/IshidaMotohiro/RMeCab/blob/master/src/Makevars
これをgit cloneしてきて作業ディレクトリで
install.packages("RMeCab", repos = NULL, type = "source")
したら正常に動いた。なんだったんだろう…?
ともあれ、無事にRMeCab入ったのでRMeCabを使ってもRStudioは落ちないです。よかったね!
> library(RMeCab) > res <- RMeCabC("すもももももももものうち") > unlist(res) 名詞 助詞 名詞 助詞 名詞 助詞 名詞 "すもも" "も" "もも" "も" "もも" "の" "うち"