Posit Cloud 安装 tidyverse 时 rlang 下载返回 404,如何解决?
结论
日志显示,rlang 下载地址返回了 404 Not Found,导致该依赖包安装失败。之后加载 tidyverse 时,ggplot2 因找不到 rlang 而报错。
可以先检查当前仓库配置,再显式指定另一个 CRAN 仓库安装 rlang。如果项目环境能够访问该仓库,安装成功后再重新安装并加载 tidyverse。
这些错误有什么关系?
安装过程请求了以下地址:
http://rspm/default/__linux__/noble/latest/src/contrib/rlang_1.1.7.tar.gz
服务器返回了 404,本次请求没有取得对应的包文件。日志中的 invalid package、no packages specified 和安装退出状态非零,都是在下载失败之后出现的。
加载阶段的错误明确指出:
there is no package called ‘rlang’
仅凭这些日志,无法确定仓库索引与实际文件是否暂时不同步,也无法确认缓存或仓库服务是否异常。日志也不足以证明问题是由免费版限制或 R 版本不兼容引起的。
如何重新安装?
1. 查看当前仓库配置
在 R 控制台执行:
getOption("repos")
保留输出,以便确认安装时使用的仓库。错误日志显示,失败的下载请求指向 http://rspm/default/...。
2. 指定 CRAN 仓库安装 rlang
建议先重启 R 会话,再执行:
cran_repo <- "https://cloud.r-project.org"
install.packages("rlang", repos = cran_repo)
library(rlang)
packageVersion("rlang")
repos 参数为本次安装指定仓库。让仓库索引决定可用版本即可,无需手动拼接 rlang_1.1.7.tar.gz 的下载地址。
先确认 library(rlang) 能成功执行。如果安装仍然报错,先处理新错误,再继续安装 tidyverse。
3. 重新安装并验证 tidyverse
install.packages("tidyverse", repos = cran_repo)
library(tidyverse)
library() 只加载已安装的包,不会补装缺失的依赖,因此需要先完成安装。
如果希望后续安装也使用同一仓库,可以在当前 R 会话中设置:
options(repos = c(CRAN = "https://cloud.r-project.org"))
该设置只影响当前会话。重启后是否恢复其他配置,取决于项目和平台的启动设置。
换仓库后仍然失败怎么办?
查看新日志中最早出现的下载或安装错误:
- 如果仍然请求原来的
http://rspm/...地址,检查实际执行的命令是否带有repos参数,以及项目是否存在额外的仓库配置。 - 如果访问新仓库时出现连接失败、超时或证书错误,需要排查项目对该地址的网络访问。
- 如果下载成功后出现编译器、系统库或内存相关错误,说明安装已经进入另一个阶段,需要按新错误处理。更换仓库后可能需要从源码编译,能否完成取决于项目环境。
继续求助时,可以提供以下输出,以及指定新仓库后的完整安装日志:
getOption("repos")
sessionInfo()
.libPaths()
不要只保留最后一条 non-zero exit status,前面的下载或编译错误通常更能说明失败原因。
备注:内容仅供参考。
