- このトピックには15件の返信、1人の参加者があり、最後に佐藤により2年、 4ヶ月前に更新されました。
-
投稿者投稿
-
2021年11月25日 11:39 AM #8096いゲスト
お世話になっております
まず,sessioninfoは下記のとおりです
###
R version 4.1.2 (2021-11-01)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Monterey 12.0.1Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/lib/libRlapack.dyliblocale:
[1] ja_JP.UTF-8/ja_JP.UTF-8/ja_JP.UTF-8/C/ja_JP.UTF-8/ja_JP.UTF-8attached base packages:
[1] stats graphics grDevices utils datasets methods baseloaded via a namespace (and not attached):
[1] compiler_4.1.2 tools_4.1.2
###お伺いなのですが,RMeCabのインストール後,library(RMeCab)を実行すると下記のメッセージが出ます。
解決策を御存知でしたら御教示を賜りたく存じます。
Homebrewは使っておりません。###
エラー: package or namespace load failed for ‘RMeCab’ in dyn.load(file, DLLpath = DLLpath, …):
共有ライブラリ ‘/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/RMeCab/libs/RMeCab.so’ を読み込めません:
dlopen(/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/RMeCab/libs/RMeCab.so, 0x0006): Library not loaded: /usr/local/lib/libmecab.2.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/RMeCab/libs/RMeCab.so
Reason: tried: ‘/usr/local/lib/libmecab.2.dylib’ (no such file), ‘/usr/lib/libmecab.2.dylib’ (no such file)
###2021年11月26日 8:53 AM #8097ishidaキーマスターMeCab 本体はインストールされていますか?
2021年11月26日 10:16 AM #8098いゲスト御返信を下さり,どうもありがとうございます。
はい,MeCab本体はインストール済でございます。2021年11月26日 12:16 PM #8099いゲストR(RStudioではなく)で試してみたところ,下記のメッセージが出てきました。
> library(RMeCab)
> res <- RMeCabC(“すもももももももものうち”)*** caught segfault ***
address 0xffffffffffffffff, cause ‘invalid permissions’Traceback:
1: RMeCabC(“すもももももももものうち”)Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace2021年11月26日 1:23 PM #8100ishidaキーマスターRがarm版のようなので、以下でmecabもarm版かをターミナルで確認してみてください。
`
lipo -archs /usr/local/bin/mecab
# or file /usr/local/bin/mecab
lipo -archs /usr/local/lib/libmecab.dylib
# or file /usr/local/lib/libmecab.dylib
`
/usr/local/bin/に該当ファイルがないようなら、以下で確認します。`
mecab-config –libs
`
以上の結果しだいなのですが、あるいはRMeCabのインストール時に typeを指定していなければ、以下のようにして入れ直してみます。
`
install.packages(“RMeCab”, repos=”https://rmecab.jp/R”, type =”source”)
`
いま頂いている情報の範囲で提案できるのは以上になります。
- この返信は2年、 12ヶ月前にishidaが編集しました。
2021年11月26日 3:12 PM #8102いゲストさっそくに御教示下さり,どうもありがとうございます。
やってみます。2021年11月26日 3:38 PM #8103いゲストターミナルを操作してみました。
MeCabがarm版かどうか存じませんで,「x86_64」というのはarm版なのでしょうか…申し訳ございません。
###
c@cnoiMac ~ % lipo -archs /usr/local/bin/mecab
x86_64
c@cnoiMac ~ % lipo -archs /usr/local/lib/libmecab.dylib
x86_64
c@cnoiMac ~ % mecab-config –libs
Usage: mecab-config [OPTIONS]Options:
[–cxx]
[–prefix[=DIR]]
[–exec-prefix[=DIR]]
[–libs]
[–cflags]
[–dicdir]
[–libexecdir]
[–sysconfdir]
[–libs-only-L]
[–libs-only-l]
[–inc-dir]
[–help]
[–version]
###また,RMeCabを入れなおしたところ,下記のメッセージが出てきました。
RStudioで行うと爆弾の絵が出てきてしまいます。
何か解決策を御存知でしたら,御教示を賜りたく存じます。
何度も申し訳ございません。###
ld: warning: ignoring file /usr/local/lib/libmecab.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
installing to /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/00LOCK-RMeCab/00new/RMeCab/libs
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (RMeCab)The downloaded source packages are in
‘/private/var/folders/6x/dxw38h8933b1rts0tg7lkz100000gn/T/RtmpCo3zJe/downloaded_packages’
###2021年11月26日 5:58 PM #8104ishidaキーマスター調査いただきありがとうございます。
「x86_64」というのはIntel版のことです。Intel版をRosettaを介してM1 Macで動かしているということになります。
RMeCabはRのバイナリ(ライブラリ)とMeCabのバイナリ(ライブラリ)を結合して動作しますが、お使いのMacでは、MeCabのライブラリがいわゆるIntel版なのに対して、R本体のほうがArm版であるため、RMeCabが動かないのだと思われます。対処方法は、MeCab も Arm 版を入れることなのですが、そちらのMacにいま入っているMeCabをどのようにインストールされましたでしょうか?
2021年11月26日 10:24 PM #8105いゲスト御教示下さりどうもありがとうございます。
MeCabのインストールは,MeCabのホームページからmecab-0.996.tar.gzをダウンロードし,下記の手順でインストールいたしました。
###
cd ~/Downloads
tar -xvf mecab-0.996.tar.gz
cd mecab-0.996
./configure –with-charset=utf8
make
make check
sudo make install
###Arm版のMeCabをダウンロード・インストールしたいのですが,どのようにすればよいのでしょうか…
RMeCabの質問ではなくMeCabの質問になってしまい,申し訳ございません。2021年11月27日 9:49 AM #8106ishidaキーマスターちょっと整理します。
M1 (Apple silicon arm64 ) MacOSX に M1版R R-4.1.2-arm64.pkg (https://cran.ism.ac.jp/bin/macosx/)をインストールし、開発環境は xcode-select –install のみで、HomebrewもMacPortも入っていないが、MeCabをインストールすると、M1用ではなく Intel 用になってしまう、という状況ということになるのかと思います。ちょっと、私も、なぜそうなるのか、分からないのですが、とりあえずターミナルで
g++ –version
と入力して結果を教えて頂けないでしょうか?出力のTarget という行に、普通は arm64-apple-darwin21.1.0 などと表示されるはずなのですが。- この返信は2年、 12ヶ月前にishidaが編集しました。
2021年11月27日 11:25 AM #8108いゲストターミナルでターミナルでg++ –-versionと入力いたしました。
arm64ではなく,x86_64と表示されております。###
c@cnoiMac ~ % g++ –version
Configured with: –prefix=/Applications/Xcode.app/Contents/Developer/usr –with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: x86_64-apple-darwin21.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
###2021年11月27日 1:35 PM #8109ishidaキーマスター一応、確認ですがお使いのMacはM1マックでしょうか?
左上 Apple メニュー >「この Mac について」の「チップ」欄に表示があるかと思うのですが。
2021年11月27日 2:54 PM #8110いゲストはい,チップ Apple M1とございます。
2021年11月27日 4:03 PM #8111ishidaキーマスター私も確信はないのですが、次のような処理をしてみてくれないでしょうか?
ターミナルのデフォルトの状態が Rosetta を介するようになっているため、Intel用バイナリが生成されるのかもしれません。いったんターミナルを閉じて,Finder でターミナルを選択し「情報を見る」を選ぶと、「Rosettaを使用して開く」にチェックが入っているのではないかと思うのですが、このチェックを外し、ここでターミナルを起動して uname -m と打ち込むjと、arm64 になるかどうか確認してください。
もし、arm64 と表示されているのならば、このまま mecab_0.96 のフォルダに移動し、次のようにしてください。
`
$ cd mecab-0.996
$ sudo make uninstall
$ cd ../mecab-ipadic-2.7.0-20070801
$ sudo make uninstall
$ cd ../mecab-0.996
$ make distclean
$ ./configure –with-charset=utf8
$ make
$ sudo make install
$ cd ../mecab-ipadic-2.7.0-20070801
$ make distclean
$ ./configure –with-charset=utf-8
$ make
$ sudo make install
`
もし、ターミナルのRosettaを外しても、arm64と表示されないのであれば、申し訳ないのですが、私の現在の知識では、ちょっと対応方法がわからないです。考えます。
- この返信は2年、 12ヶ月前にishidaが編集しました。
2021年11月27日 5:38 PM #8113いゲスト「Rosettaを使用して開く」のチェックを外し,ターミナルを起動して uname -m と打ち込んだところ, arm64 と出ました。
御教示に従って進めたところ,RMeCabが動いてくれました。お忙しいところ数多御教示を賜り,謹んでお礼を申しあげます。
どうもありがとうございます。たいへん助かりました。 -
投稿者投稿
- フォーラム「RMeCab」には新規投稿および返信を追加できません。