方針
ソースから入れるのはめんどくさいので 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
のインストーラーのバグが解消されるのとどっちが早いか… ↩