PAYATHON 2026

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,前面的下载或编译错误通常更能说明失败原因。

备注:内容仅供参考。