如何在R CMD check执行过程中忽略指定依赖包的检查?
R包CI构建时跳过特定依赖检查的解决方案
以下是几种可直接落地的处理方式,你可以根据自己的需求选择:
- 方案1:CI流程提前预安装归档依赖包
这是最稳妥的处理方式,不需要跳过检查逻辑,只需要在CI配置的R CMD check步骤之前,增加一步手动安装RQDA的代码即可。你可以直接调用自己开发的RQDAassist包中的安装函数,也可以用remotes::install_version()指定版本安装归档包,安装完成后再跑检查流程,依赖已存在就不会触发安装失败的报错。 - 方案2:给
R CMD check增加跳过依赖检查的参数
你可以在CI的check命令中添加--no-check-depends参数,示例命令如下:
这个参数会跳过所有依赖包的存在性检查,由于你不需要提交CRAN,完全可以使用这个参数规避归档包找不到的问题。如果你用的是r-lib系列的GitHub Actions模板,只需要在check动作的args参数里加上R CMD check --no-check-depends ./你的包路径"--no-check-depends"即可生效。 - 方案3:调整包依赖声明规则
你可以把DESCRIPTION文件里RQDA的依赖声明从Imports移动到Suggests分类下,同时在所有调用RQDA的代码位置增加命名空间存在性判断,示例代码如下:
调整后if (!requireNamespace("RQDA", quietly = TRUE)) { stop("请先安装RQDA包后再使用该功能") }R CMD check默认不会强制检查Suggests分类下的包是否安装,自然不会触发归档包安装失败的报错,你只需要在包的使用文档里补充说明前置依赖安装要求即可。
内容的提问来源于stack exchange,提问作者BroVic
相关产品推荐
相关产品推荐

