R语言 关于cmdstanr安装二三事
突然有任务要跑一个R语言的程序。然而我从未碰过R语言,只能是硬着头皮先本地配环境试验一下。问题真是一重又一重。。。
先记录下来一些问题的处理过程,仅供参考。有些东西可能是歪打正着,还没来得及摸清真正原因,如有错误请见谅。
程序中有用到一个包cmdstanr,但是我的环境中没有,直接使用普通的命令安装会报错:
命令:install.packages("cmdstanr", repos="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")
报错:package ‘cmdstanr’ is not available (for R version ...
查询资料发现是因为CRAN中没有这个包。。。(参考 Getting started with CmdStanR)
直接从cmdstanr的官方地址下载,代码如下:
install.packages("cmdstanr", repos = c("https://mc-stan.org/r-packages/", getOption("repos")))
使用cmdstanr需要先安装CmdStan。上一步完成后,可以使用命令:
check_cmdstan_toolchain()
如无报错,即可安装CmdStan:
install_cmdstan(cores = 2)
然而,在 check_cmdstan_toolchain() 这一步我手贱中断了一次,再次执行该代码时,报出如下错误:
error: failed to update mingw32 (unable to lock database)
error: failed to update mingw64 (unable to lock database)
error: failed to synchronize all databases
于是又一次通过查资料找到疑似解决办法:删除rtools环境目录下的/var/lib/pacman/db.lck文件。(参考 github: pacman -Syu Does Nothing #1298)
但是这一次,我在根据一些资料测试时,直接在rtools bash里使用命令:https://github.com/msys2/MSYS2-packages/issues/1298
pacman -Syu mingw-w64-x86_64-make
直接安装了mingw64。
这貌似导致了再使用 check_cmdstan_toolchain() 时报错冲突:
Other C++ toolchains installed on your system conflict with RTools.
烦躁。。。
然后发现,可以这样做:(参考 Problem with cmdstanr in Win 10 . C++ installed conflict with Rtools)
install_cmdstan(check_toolchain = FALSE)
这下居然可以使用cmdstanr了,但是冲突问题并没有解决,感觉埋下了一颗定时炸弹,以后再挖吧。
参考:
[1] Getting started with CmdStanR :https://mc-stan.org/cmdstanr/articles/cmdstanr.html
[2] github: pacman -Syu Does Nothing #1298:https://github.com/msys2/MSYS2-packages/issues/1298
[3] Problem with cmdstanr in Win 10 . C++ installed conflict with Rtools:https://discourse.mc-stan.org/t/problem-with-cmdstanr-in-win-10-c-installed-conflict-with-rtools/19430