树莓派3 B+安装finstr依赖tidyverse时缺失依赖包报错求助
解决树莓派3 B+上安装tidyverse依赖失败的问题
我帮你分析下你遇到的问题哈,从你贴的控制台输出来看,核心是tidyverse的几个依赖包(broom、tidyr、dbplyr、modelr)安装失败,导致tidyverse和modelr被自动移除了。结合树莓派3B+的ARM架构和你在用的R 3.5版本,给你几个可行的解决方向:
1. 优先升级R版本(最推荐)
R 3.5是2018年的旧版本,现在很多新包已经不再支持这个版本了,尤其是ARM架构下的预编译包资源更少。把R升级到4.x系列的稳定版,能解决大部分依赖兼容问题:
- 先更新系统软件源和已安装的软件:
sudo apt update && sudo apt upgrade -y - 然后添加CRAN针对ARM架构的官方源,依次执行这些命令:
sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/debian buster-cran40/' - 最后安装最新版的R:
sudo apt install r-base r-base-dev -y
升级完成后,打开R重新运行install.packages("tidyverse"),大概率就能成功了。
2. 安装适配R 3.5的旧版依赖包
如果暂时不想升级R,那可以尝试安装专门适配R 3.5的旧版本依赖包——因为新版本的这些包已经不支持R 3.5了:
- 先安装系统编译依赖,避免源码安装失败:
sudo apt install build-essential libcurl4-openssl-dev libssl-dev libxml2-dev -y - 然后安装
devtools包,它能帮我们指定版本安装R包:install.packages("devtools") - 加载
devtools后,逐个安装兼容的旧版本依赖:library(devtools) # 安装适配R3.5的broom 0.5.2版本 install_version("broom", version = "0.5.2") # 安装适配R3.5的tidyr 0.8.2版本 install_version("tidyr", version = "0.8.2") # 安装适配R3.5的dbplyr 1.3.0版本 install_version("dbplyr", version = "1.3.0") # 安装适配R3.5的modelr 0.1.2版本 install_version("modelr", version = "0.1.2")
等所有依赖都安装成功后,再运行install.packages("tidyverse")就能完成安装了。
3. 使用ARM架构的预编译包(针对R 3.5)
有些社区提供了ARM架构的预编译R包,能跳过源码编译的麻烦,你可以试试添加对应的源:
- 编辑R的源配置文件:
sudo nano /etc/apt/sources.list.d/r-cran.list - 在文件里添加以下内容(针对Debian Buster和R 3.5):
deb http://www.stats.bris.ac.uk/R/bin/linux/debian buster-cran35/ - 保存退出后,更新源并安装预编译的包:
sudo apt update sudo apt install r-cran-broom r-cran-tidyr r-cran-dbplyr r-cran-modelr r-cran-tidyverse -y
额外小提示
树莓派的ARM架构在安装R包时经常遇到源码编译失败的问题,尤其是老版本R,所以优先推荐你升级R到4.x版本,这样能获得更多预编译包的支持,减少折腾的概率哦。
内容的提问来源于stack exchange,提问作者ilike2pr0gr4mm4
相关产品推荐
相关产品推荐

