首页 > 解决方案 > 在 docker/Debian 上的 r.net 中设置 R 主目录很热?

问题描述

我尝试在支持 docker 的 asp.net Razor 应用程序中使用 R.Net。docker镜像是Debian 10,R安装在镜像的标准路径下/usr/lib/R。执行时

REngine.SetEnvironmentVariables(rHome:"/usr/lib/R"); // or any other path including none
REngine engine = REngine.GetInstance();

我得到错误R home directory is not defined。如果我在容器中打开一个 shell 并启动 R,则R.home()返回/usr/lib/R. 所以看起来容器中的 R 有一个 R 主目录集,但 r.net 没有识别它?有什么想法我可以尝试解决这个问题吗?

标签: c#rdockerr.net

解决方案


很可能以错误的方式调用 R。Use /usr/bin/Rwhich 是一个前端,它设置R_HOME为供其他组件进一步使用。

edd@rob:~$ file /usr/bin/R
/usr/bin/R: Bourne-Again shell script, ASCII text executable
edd@rob:~$ grep ^R_HOME /usr/bin/R 
R_HOME_DIR=/usr/lib/R
R_HOME="${R_HOME_DIR}"
edd@rob:~$ 

推荐阅读