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

如何复现CRAN R包提交时Debian winbuilder的URL检查

CRAN Debian环境URL健康度检查复现方案
  • 该检查仅在Debian系Linux环境下触发,Windows原生环境、Windows版本win-builder网页上传通道不会运行该校验项,无法通过上述渠道复现完整检查流程。
  • 失效URL会触发CRAN入库NOTE,直接阻断自动审核流程,典型报错格式如下:
Found the following (possibly) invalid URLs:
  URL: http://blog.obeautifulcode.com/R/How-R-Searches-And-Finds-Stuff/
    From: inst/doc/tinyverse.html
    Status: Error
    Message: Could not resolve host: blog.obeautifulcode.com

方案1:R-hub云环境复现(匹配度最高,无需本地部署Linux)

  • 本地R环境安装rhub组件,执行命令:install.packages("rhub")
  • 加载包后指定Debian开发版平台,强制开启CRAN入库级URL校验,执行命令:
    rhub::check(platform = "debian-clang-devel", env_vars = c("_R_CHECK_CRAN_INCOMING_=true", "_R_CHECK_URLS_=true", "CURLOPT_CONNECTTIMEOUT=20"))
  • 该环境和CRAN后端Debian检查节点的curl版本、DNS解析规则、超时阈值、扫描范围完全对齐,会覆盖man文档、DESCRIPTION、vignettes源文件、inst/doc下渲染后静态html的所有链接,返回结果和CRAN官方报错完全一致。

方案2:本地Linux/WSL2环境复现(无排队等待时间)

  • 准备Debian 12/Ubuntu 22.04及以上版本运行环境,Windows设备可通过WSL2快速部署,无需单独安装物理机系统。
  • 安装检查依赖:sudo apt update && sudo apt install -y r-base-dev libcurl4-openssl-dev libssl-dev
  • 构建R包源码tar.gz包后,在包所在目录执行校验命令:
    _R_CHECK_CRAN_INCOMING_REMOTE_=false _R_CHECK_URLS_=true CURLOPT_CONNECTTIMEOUT=20 R CMD check --as-cran 对应包的源码包文件名.tar.gz

避坑提示

  • 不要用Windows环境下的urlchecker包结果作为最终校验依据:首先Windows系统自带的curl库、DNS解析逻辑和Debian环境存在差异,其次urlchecker默认不会扫描inst/doc目录下渲染生成的html内嵌链接,漏报率极高。
  • 校验过程会自动识别CRAN、Bioconductor等官方域名的合规链接,不会触发误报。
  • 确认永久失效的链接,要么替换为可正常访问的归档快照地址,要么在包的版权说明文件中标注链接失效原因,可避免触发NOTE。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:27:22