方針
ソースから入れるのはめんどくさいので homebrew で入れてしまいましょう。
筆者のハマり方
Rはgfortran に依存していて、現在はgfortranはgccの一部として提供されている。
そのため普通にbrew isntall rすると依存関係のあるgccも同時に入れられるのだが、そのパスがうまいことRに伝わらないため、動かない。
症状と対処
$ brew install r
$ r
dyld: Library not loaded: /usr/local/opt/gcc/lib/gcc/6/libgfortran.3.dylib
Referenced from: /usr/local/Cellar/r/3.3.0_1/R.framework/Versions/3.3/Resources/lib/libR.dylib
Reason: image not found
Trace/BPT trap: 5
要は、Rさんとしてはgccのlibgfortran.3.dylibを使いたいんだけども、そのパス指定が間違っている。
今回のタイミングであればgcc6のバージョンが入るのだけど、本体は/usr/local/Cellar/gcc6/6-{日付}のようなパスに存在し、そこへのシンボリックリンクが/usr/local/opt/gcc6という名前で貼ってある。
でもRさんはなぜかusr/local/opt/gccという名前を呼んでいるので、今回はusr/local/opt/gccという名前でusr/local/opt/gcc6へのリンクを作成することで対処した。1
$ ln -s /usr/local/opt/gcc6 /usr/local/opt/gcc
$ r
R version 3.3.0 (2016-05-03) -- "Supposedly Educational"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin14.5.0 (64-bit)
...
ようやく無事に動いてくれました。
-
懸念点として、
gccのバージョンが上がるたびにこいつを書き換えなくてはならないかもしれないということ。gcc6自体を削除しなければ問題はないが、さて…という感じ。gccのバージョンが上がるのとRのインストーラーのバグが解消されるのとどっちが早いか… ↩