渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

Mac OSでR 3.6.1にアップデートしたらRStanが走らなくなったので、復旧させた話

この記事は完全に備忘録です。必要最低限の情報しか記されていませんので悪しからずご了承ください。

f:id:TJO:20191207154605p:plain

色々事情があってつい最近Rを3.6.1にアップデートして、いつも通りパッケージをインストールし直していたのですが、こういう時に毎回コケるのはRStanと相場が決まっているので、これまたいつも通りRStanをインストールした後でお馴染みの8schoolsでテストしてみたのでした。そしたら、以下のようなエラーメッセージが*1

> library(rstan)
> schools_dat <- list(J = 8, 
+                     y = c(28,  8, -3,  7, -1,  1, 18, 12),
+                     sigma = c(15, 10, 16, 11,  9, 11, 10, 18))
> fit <- stan(file = '8schools.stan', data = schools_dat)
Error in compileCode(f, code, language = language, verbose = verbose) : 
  Compilation ERROR, function(s)/method(s) not created!
...
Error in sink(type = "output") : invalid connection

こういう、RStanのインストールが通った後にもかかわらずcompileCode系のエラーが出る時はClangに問題があることが多いので、Clangをインストールし直したんですがそれでも直らず。。。しばらく困っていたのですが、結局以下のissue commentの通りに対応したら解決しました。

  1. Xcode Command Line Toolsの最新バージョンをインストールする
  2. rstanを削除する
  3. Rセッションを再起動する
  4. StanHeaders, rstanの順に再インストールする

Mac OSだとXcodeがネックになることが多いんですよね。。。ということで今後もR側のバージョンが変わった時はXcodeのアップデートも忘れずにやっておこうと思います。

*1:正確にはエラーログを取っておかなかったので下記にリンクしたissueから共通部分をコピーしてきただけですが