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

VirtualBox中Ubuntu20LTS加载R包报错:shared object .so未找到求助

解决Ubuntu 20LTS中R包加载时shared object .so not found错误

以下是针对你遇到的R包加载报错(涉及rlang、digest、fs、fansi等库)的可行解决步骤:

1. 修复R包安装路径权限

权限不足常导致.so文件无法被读取:

  • 在R中执行.libPaths()获取包安装目录(通常是~/R/x86_64-pc-linux-gnu-library/4.x或/usr/local/lib/R/site-library)
  • 终端中检查目标包目录权限,以digest为例:ls -l /path/to/R/library/digest
  • 如果目录所有者是root,普通用户无读取权限,执行:
    sudo chmod -R 755 /path/to/R/library
    # 或者递归修改所有者为当前用户
    sudo chown -R $USER:$USER /path/to/R/library
    

2. 源码编译重装R包

系统apt安装的预编译包可能与本地R版本不兼容,建议源码编译安装:

  • 在R中彻底卸载问题包:
    remove.packages(c("rlang", "digest", "fs", "fansi", "devtools"))
    
  • 关闭R,终端安装编译依赖:
    sudo apt-get install build-essential libcurl4-openssl-dev libssl-dev libxml2-dev
    
  • 以普通用户身份启动R,源码安装包:
    install.packages(c("rlang", "digest", "fs", "fansi", "devtools"), type = "source")
    
    注意:不要用sudo启动R安装包,否则普通用户加载会有权限问题。

3. 升级R版本(针对旧版本兼容性问题)

Ubuntu 20LTS默认R版本为3.6.x,部分新包(如devtools)需要R 4.0+支持:

  • 终端添加CRAN源并升级R:
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
    sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'
    sudo apt-get update
    sudo apt-get install r-base r-base-dev
    
  • 升级完成后重新安装所有问题包。

4. 清理R缓存与损坏包

  • 终端删除R缓存目录:rm -rf ~/.cache/R
  • 在R中执行installed.packages()查看问题包的安装路径,终端删除对应损坏目录(如rm -rf ~/R/x86_64-pc-linux-gnu-library/4.x/fs),再重新安装。

内容的提问来源于stack exchange,提问作者AturSams

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:54:23