HPC环境下更新R版本遇installr加载失败,寻求解决方案
HPC环境下更新R版本的可行方案(解决installr加载失败问题)
方法1:直接从源码编译安装R(最可控)
HPC系统库版本受限是常见问题,绕开installr直接编译能避免依赖冲突:
- 先查集群里的可用编译器,执行
module avail gcc,挑一个版本≥5.0的gcc(高版本gcc自带的libstdc++包含CXXABI_1.3.8) - 加载选中的gcc模块,比如
module load gcc/9.3.0 - 下载目标R版本的源码包(比如R 4.3.3),解压后进入源码目录,执行配置命令(把路径换成你自己的本地目录):
./configure --prefix=$HOME/local/R-4.3.3 --with-readline=no --with-x=no make make install - 配置环境变量让系统优先用你编译的R,把下面两行加到
~/.bashrc或者~/.bash_profile里:export PATH=$HOME/local/R-4.3.3/bin:$PATH export LD_LIBRARY_PATH=$HOME/local/R-4.3.3/lib:$LD_LIBRARY_PATH
方法2:修复libstdc++依赖后用installr
如果一定要用installr,先解决库版本问题:
- 加载高版本gcc模块(比如
module load gcc/8.2.0),因为gcc安装目录里有符合要求的libstdc++ - 临时设置库路径指向该gcc的lib目录:
export LD_LIBRARY_PATH=$(dirname $(which g++))/../lib64:$LD_LIBRARY_PATH - 再启动R,执行
library(installr)尝试加载,之后就可以用installr更新R了
方法3:用集群自带的包管理工具安装(最省心)
多数HPC用模块管理软件,直接找现成的新版本R:
- 执行
module spider R查看所有可用的R版本 - 加载目标版本,比如
module load R/4.3.3 - 如果没有你要的版本,直接联系集群管理员帮忙安装,比自己折腾效率高
内容的提问来源于stack exchange,提问作者Jinggggggg
相关产品推荐
相关产品推荐

