You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装R包时报错'libRblas.so: 无此文件或目录'如何解决

Ubuntu 22.04下安装R包提示libRblas.so缺失的解决方案

问题表现

安装依赖libRblas.so(对应OpenBLAS)的R包(如imputeTS)时触发加载失败,报错信息:

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/home/jay/R/x86_64-pc-linux-gnu-library/4.2/fracdiff/libs/fracdiff.so':
  libRblas.so: cannot open shared object file: No such file or directory
Calls: <Anonymous> ... asNamespace -> loadNamespace -> library.dynam -> dyn.load
Execution halted

执行sessionInfo()查看,R已正确识别系统BLAS路径:

> sessionInfo()
R version 4.2.1 (2022-06-23)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 22.04 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so

环境存在版本变更记录:此前源码编译安装过R 4.2.0,后续在源码目录执行./configure、make uninstall卸载,当前使用sudo apt install r-base-core安装的官方源R版本,初步判断为旧版本残留导致配置冲突。

已排查信息

  • whereis R输出存在多版本路径:
~$ whereis R
R: /usr/bin/R /usr/lib/R /usr/lib64/R /etc/R /usr/local/lib/R /usr/share/R /usr/share/man/man1/R.1.gz
  • 家目录下仅找到报错涉及的fracdiff.so,路径为~/R/x86_64-pc-linux-gnu-library/4.2/fracdiff/libs/fracdiff.so,全局搜索无libRblas.so、libRlapack.so文件。
  • libopenblas-dev已为最新版本(0.3.20+ds-1)。
  • 执行sudo update-alternatives --config libblas.so提示无可用候选项:
~$ sudo update-alternatives --config libblas.so
update-alternatives: error: no alternatives for libblas.so

根因

源码编译安装R默认部署到/usr/local/路径下,make uninstall无法完全清理所有残留文件,包括/usr/local/lib/R、/usr/lib64/R下的库文件、/usr/local/bin下的可执行文件。这些残留路径优先级高于系统源R的默认路径,会导致R加载第三方包时,优先查找源码编译版本R依赖的私有libRblas.so、libRlapack.so文件;而系统源版本R默认链接系统OpenBLAS,不会自带这两个私有库,最终触发文件不存在报错。同时家目录下之前用源码版R安装的第三方包,编译时硬编码了旧版本的库路径,也会加剧冲突。

修复操作

按顺序执行以下操作即可解决问题:

  • 彻底删除旧源码版本R的残留文件
    sudo rm -rf /usr/local/lib/R /usr/lib64/R
    sudo rm -f /usr/local/bin/R /usr/local/bin/Rscript
    
  • 补全系统源R的开发依赖,刷新动态链接库缓存
    sudo apt update
    sudo apt install -y r-base-dev libblas-dev liblapack-dev
    sudo ldconfig
    
  • 清理旧版本编译的第三方R包,避免硬编码依赖冲突
    rm -rf ~/R/x86_64-pc-linux-gnu-library/4.2/
    
  • 验证当前R路径
    执行which R,确认输出为/usr/bin/R即为正常,重启R后重新安装需要的R包即可。

内容的提问来源于stack exchange,提问作者jay.sf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:15:31