RMeCabのインストールエラー

アールメカブ フォーラム RMeCab RMeCabのインストールエラー

  • このトピックには15件の返信、1人の参加者があり、最後に佐藤により2年、 4ヶ月前に更新されました。
15件の投稿を表示中 - 1 - 15件目 (全16件中)
  • 投稿者
    投稿
  • #8096
    ゲスト

    お世話になっております
    まず,sessioninfoは下記のとおりです
    ###
    R version 4.1.2 (2021-11-01)
    Platform: aarch64-apple-darwin20 (64-bit)
    Running under: macOS Monterey 12.0.1

    Matrix products: default
    LAPACK: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/lib/libRlapack.dylib

    locale:
    [1] ja_JP.UTF-8/ja_JP.UTF-8/ja_JP.UTF-8/C/ja_JP.UTF-8/ja_JP.UTF-8

    attached base packages:
    [1] stats graphics grDevices utils datasets methods base

    loaded 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)
    ###

    #8097
    ishida
    キーマスター

    MeCab 本体はインストールされていますか?

    #8098
    ゲスト

    御返信を下さり,どうもありがとうございます。
    はい,MeCab本体はインストール済でございます。

    #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 workspace

    #8100
    ishida
    キーマスター

    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&#8221;, type =”source”)
    `

    いま頂いている情報の範囲で提案できるのは以上になります。

    • この返信は2年、 11ヶ月前にishidaが編集しました。
    #8102
    ゲスト

    さっそくに御教示下さり,どうもありがとうございます。
    やってみます。

    #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’
    ###

    #8104
    ishida
    キーマスター

    調査いただきありがとうございます。

    「x86_64」というのはIntel版のことです。Intel版をRosettaを介してM1 Macで動かしているということになります。
    RMeCabはRのバイナリ(ライブラリ)とMeCabのバイナリ(ライブラリ)を結合して動作しますが、お使いのMacでは、MeCabのライブラリがいわゆるIntel版なのに対して、R本体のほうがArm版であるため、RMeCabが動かないのだと思われます。

    対処方法は、MeCab も Arm 版を入れることなのですが、そちらのMacにいま入っているMeCabをどのようにインストールされましたでしょうか?

    #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の質問になってしまい,申し訳ございません。

    #8106
    ishida
    キーマスター

    ちょっと整理します。
    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年、 11ヶ月前にishidaが編集しました。
    #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
    ###

    #8109
    ishida
    キーマスター

    一応、確認ですがお使いのMacはM1マックでしょうか?

    左上 Apple メニュー >「この Mac について」の「チップ」欄に表示があるかと思うのですが。

    #8110
    ゲスト

    はい,チップ Apple M1とございます。

    #8111
    ishida
    キーマスター

    私も確信はないのですが、次のような処理をしてみてくれないでしょうか?
    ターミナルのデフォルトの状態が 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年、 11ヶ月前にishidaが編集しました。
    #8113
    ゲスト

    「Rosettaを使用して開く」のチェックを外し,ターミナルを起動して uname -m と打ち込んだところ, arm64 と出ました。
    御教示に従って進めたところ,RMeCabが動いてくれました。

    お忙しいところ数多御教示を賜り,謹んでお礼を申しあげます。
    どうもありがとうございます。たいへん助かりました。

15件の投稿を表示中 - 1 - 15件目 (全16件中)
  • フォーラム「RMeCab」には新規投稿および返信を追加できません。