IshidaMotohiro / RMeCab

Interface to MeCab
30 stars 10 forks source link

RMeCabがM1 MacBook Air, Mac Miniの双方でダウンロードできない件 #21

Closed NoriakiM closed 2 years ago

NoriakiM commented 2 years ago

(アールメカブのサイトの方にも質問させていただきましたが、念の為、アカウントを作成しましたのでこちらにも同じ質問を書き込ませていただきます。)

初めまして。大学院の授業でRMeCabを使用するため、ダウンロードを試みているのですが、MacBook AirでもデスクトップのMac miniでも全く同じエラーでR上にインストールすることができず、大変困っております。

現状では、両PCでR studioとMeCabはダウンロードしており、ターミナルでは「すもももももももものうち」を解析することができている状況です。アールメカブのサイトの指示通り、

install.packages("RMeCab", repos = "https://rmecab.jp/R") install.packages("RMeCab", repos = "https://rmecab.jp/R", type = "source") install.packages("remotes") remotes::install_github("IshidaMotohiro/RMeCab")

の3パターンのスクリプトを両PCとも走らせましたが、以下のようなエラーが出ております。

trying URL 'https://rmecab.jp/R/src/contrib/RMeCab_1.08.tar.gz' Content type 'application/x-gzip' length 1473942 bytes (1.4 MB)

downloaded 1.4 MB

The downloaded source packages are in ‘/private/var/folders/2z/rdrpgd1j44j2wvwsm9pv8hbc0000gp/T/RtmpSm21Q1/downloaded_packages’

サイトの方で警告されている通り、Rosettaは動かないようにしてあります。当方、PCに滅法弱く、かなり調べましたが、両PCとも同じエラーが出ており埒が明かない状況です。私が根本的に間違ったことをしているのでしょうか。どうか、よろしくお願い申し上げます。

なお、質問の注意事項にありましたsessionInfo()は以下の通りです。

R version 4.2.0 (2022-04-22) Platform: x86_64-apple-darwin17.0 (64-bit) Running under: macOS Monterey 12.3.1

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

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

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

loaded via a namespace (and not attached): [1] compiler_4.2.0 tools_4.2.0 remotes_2.4.2

授業で使用するため、ご回答を賜れますと幸いです。よろしくお願い申し上げます。

IshidaMotohiro commented 2 years ago

MeCabをHomebrewで入れてませんか?その場合は、一旦 brew uninstall mecab mecab-ipadic とし、面倒ですが、下記の手順でMeCabを再インストールしてから試してみてくれませんか?

https://rmecab.jp/new/

NoriakiM commented 2 years ago

ご回答ありがとうございます。MeCabはHomebrewをインストールしてから入れておりました。

ターミナルでbrew uninstall mecab mecab-ipadicを行いました。ターミナルでmecabと打っても出なくなりましたので、おそらく一回消去されたのだと思われます。再インストールしようとしているのですが、色々とエラーが出ます。

①xcode-select –installを入れると、以下のようになります。

xcode-select: error: invalid argument '–install' Usage: xcode-select [options]

Print or change the path to the active developer directory. This directory controls which tools are used for the Xcode command line tools (for example, xcodebuild) as well as the BSD development commands (such as cc and make).

Options: -h, --help print this help message and exit -p, --print-path print the path of the active developer directory -s , --switch set the path for the active developer directory --install open a dialog for installation of the command line developer tools -v, --version print the xcode-select version -r, --reset reset to the default command line tools path

②./configure –with-charset=utf8を入れると、以下のようになりまして、それ以上先には行けません。

configure: error: invalid variable name: `–with-charset'

初歩的な質問で大変恐縮なのですが、順序としてはmecab-0.996.tar.gz をサイトからダウンロードするとは、「自分のローカルにダウンロードする」ことを意味しているのでしょうか。また、担当の先生が掲示されたご説明でもうまく行きません。ご参考までに、先生のされたご説明を以下にペーストいたします。 _____________________________ 担当教員はM1チップを搭載したMacを持っていて、Appleシリコン用のR-4.1.0-arm64.pkgとRStudio v1.4.1717-3 Previewをインストールした状態で、以下の方法でインストールできましたが、その後のバージョンではインストールを試していません。 また、インストールに問題があっても、担当教員はMacに不慣れなため、サポートできるとは限りません。

最初に、ターミナルで次のコマンドを実行してHomebrewをインストールします。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" (ダウンロード・インストールには時間がかかります。) (Homebrewの詳しいインストール方法については、 https://qiita.com/zaburo/items/29fe23c1ceb6056109fd が参考になると思います。)

インストールの最後の方に次のメッセージが表示された場合は、echoで始まる行とevalで始まる行をコピーしてターミナルで実行します。

==> Next steps:

次に、ターミナルで次のコマンドを実行し、mecabとmecab-ipadicをインストールします。

brew install mecab brew install mecab-ipadic

次に、ターミナルで次のコマンドを実行し、必要なシンボリックリンクを作成します。

sudo ln -s /opt/homebrew/Cellar/mecab/0.996/bin/mecab /usr/local/bin/mecab sudo mkdir /usr/local/lib/mecab sudo mkdir /usr/local/lib/mecab/dic sudo ln -s /opt/homebrew/lib/mecab/dic/ipadic /usr/local/lib/mecab/dic/ipadic sudo ln -s /opt/homebrew/Cellar/mecab/0.996/lib/libmecab.2.dylib /usr/local/lib/libmecab.2.dylib

次に、RStudioのコンソール上で次のコマンドを実行し、RMeCabのパッケージをインストールします。

install.packages("RMeCab", repos="https://rmecab.jp/R") _____________________________

昨日はHomebrewをインストールする際、上記「echoで始まる行とevalで始まる行をコピーしてターミナルで実行します。」の手順で、permission deniedが出まして、ネットで色々これを解消するというスクリプトを試しましたが、何も解決されませんでした。

大変お手数をおかけ致しますが、よろしくお願い申し上げます。

IshidaMotohiro commented 2 years ago

まず以下をターミナルで実行してください。半角ハイフン2個です。

xcode-select --install

それから念の為、以下を実行してください。(brewでmecabをインストールされており、かつインストール後に手作業で環境設定をされている場合に必要になりますが、実行されていない場合は単にエラーになります)

sudo unlink  /usr/local/bin/mecab
sudo unlink  /usr/local/lib/mecab/dic/ipadic
sudo unlink  /usr/local/lib/libmecab.2.dylib

そして

cd Downloads
curl -fsSL "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE" -o mecab-0.996.tar.gz
tar xf mecab-0.996.tar.gz
cd mecab-0.996 
./configure --with-charset=utf8
make
sudo make install

同じく 辞書mecab-ipadic-2.7.0-20070801.tar.gz もインストールします(以下の手順の二番目で自動的にダウンロードされますが、数秒かかります)。

cd ~/Downloads
curl -fsSL "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM" -o mecab-ipadic-2.7.0-20070801.tar.gz
tar xf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf-8
make
sudo make install
IshidaMotohiro commented 2 years ago

MeCabのサイトからクリックしてダウンロードする必要はないです。上記の curl という命令で、ダウンロードがされます。

NoriakiM commented 2 years ago

早速ありがとうございます。

まず、xcode-select --installですが、以下のようになります。

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

ターミナルでsoftware updateと検索すると、マニュアルが出てきますが、その先の進め方がどうなっているのか不明です。お手数をおかけして申し訳ございません。最初のステップですが、よろしくお願い申し上げます。

IshidaMotohiro commented 2 years ago

xcode-select --install はスキップして次の手順に進んでください

NoriakiM commented 2 years ago

ありがとうございます。

指示通りに行ったところ、ターミナルではmecabが入ったようで、再度「すもももももももものうち」を解析することができるようになりました。

次に、サイトの指示に従ってR studioの方でRMeCabをダウンロードしたところ、以下のようになったので、おそらくできているのだと思われます。

install.packages("RMeCab", repos = "https://rmecab.jp/R") trying URL 'https://rmecab.jp/R/bin/macosx/contrib/4.1/RMeCab_1.07.tgz' Content type 'application/x-gzip' length 166177 bytes (162 KB)

downloaded 162 KB

ただ、実行できるか確認するためにlibraryを使ったところ

library(RMeCab) Error: package or namespace load failed for ‘RMeCab’ in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RMeCab/libs/RMeCab.so': dlopen(/Library/Frameworks/R.framework/Versions/4.1/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/Resources/library/RMeCab/libs/RMeCab.so Reason: tried: '/usr/local/lib/libmecab.2.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/Library/Frameworks/R.framework/Resources/lib/libmecab.2.dylib' (no such file), '/Users/noriaki_mikajiri/lib/libmecab.2.dylib' (no such file), '/usr/lib/libmecab.2.dylib' (no such file), '/lib/libmecab.2.dylib' (no such file), '/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home/jre/lib/server/libmecab.2.dylib' (no such file), '/var/folders/2z/rdrpgd1j44j2wvwsm9pv8hbc0000g

このようなエラーが発生しました。原因はどこにありそうでしょうか。よろしくお願い申し上げます。

IshidaMotohiro commented 2 years ago

いまの手順で作成したMeCabがintel用にビルドされているようです。

(mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')),

もしM1Macをお使いなら、ターミナルのロゼッタを外し、以下を実行の上、もう一度やり直す必要があります。

cd ~/Downloads/mecab-0.996
sudo make uninstall
cd mecab-ipadic-2.7.0-20070801
sudo make uninstall

それから、上のメッセージからすると、起動しているRはR-4.2.0ではなく、R-4.1.* ではないですか?

IshidaMotohiro commented 2 years ago

Rについても、M1版がインストールされているかどうか、念の為、確認されたほうが良いかもしれません。

NoriakiM commented 2 years ago

ありがとうございます。全てやり直したところ、無事にRstudioで動かすことができました…1週間以上苦闘してきたものが解決し大変感謝しております。

ネットで調べてみたところ、おそらく私のインストールしていたRがそもそもM1版ではなかったようで、RとRstudioをアンインストールして、再度インストールしてみました。その上で、改めてmecabを一度アンインストールして、上記の通りに再度インストールしました。ターミナルでmecabが動作したので、RMeCabをインストールし、動作確認をしたところすももの文を解析することができました。

これでやっと使うことができそうです。大変丁寧にご教示くださり、誠にありがとうございます。本当に助かりました。