CentOS Docker升级R至4.3.1后,R包安装路径报错问题咨询
R升级后Dockerfile中R路径错误的解决方法
问题原因
升级到R-4.3.1后,R的安装路径发生了变更:旧版本R-3.6.0通过yum安装后通常位于/usr/bin/R,但R-4.3.1的默认安装路径改为了版本专属目录/opt/R/4.3.1/bin/R,这就是你执行/usr/bin/R CMD INSTALL时提示“文件不存在”的核心原因。
直接解决方法
使用R-4.3.1的实际安装路径执行包安装命令,修改出错的代码行:
# Install R packages RUN /opt/R/4.3.1/bin/R CMD INSTALL /tmp/Rpackages/yaImpute_1.0-33.tar.gz && \ # /opt/R/4.3.1/bin/R CMD INSTALL /tmp/Rpackages/ALEPlot_1.1.tar.gz && \
可选优化(简化路径)
如果想继续沿用/usr/bin/R的旧路径,避免修改所有R相关命令,可以在安装R后添加软链接:
在安装R的RUN指令末尾追加软链接命令:
RUN yum install -y java-1.8.0-openjdk-devel \ R-4.3.1 \ # Updated this line from R-3.6.0 devtoolset-8 --nogpgcheck && \ yum install -y cmake3 \ ImageMagick-c++-devel \ proj \ proj-devel \ epel-release \ v8-devel && \ # 添加软链接,将新版本R指向旧路径 ln -s /opt/R/4.3.1/bin/R /usr/bin/R
这样后续所有使用/usr/bin/R的命令都无需修改,同时保留新版本R的版本专属路径,方便多版本管理。
内容的提问来源于stack exchange,提问作者Binit Amin
相关产品推荐
相关产品推荐

