使用rhub::rhub_check()时macos-arm64环境检查失败求助
CRAN提交前macos-arm64检查失败的处理建议
操作是否有误?
你没有操作错误。仅修改代码示例的情况下,其他三个环境检查正常,说明代码本身无问题,macos-arm64的失败大概率是检查环境的依赖变化导致的(比如GitHub Actions镜像更新、macOS 15上线带来的编译/依赖兼容问题)。
需要注意的事项
- 优先排查依赖包
ps的兼容性:报错里的_ps__list_apps是ps包的内部符号,可手动在rhub的macos-arm64虚拟机里单独安装ps包,执行dyn.load测试,看是否能重现错误。 - 对比环境差异:检查rhub四个环境中
ps包的版本是否一致,macos-arm64环境的R版本、编译工具链是否和其他环境有差异,这些都可能导致加载失败。 - 验证本地arm64环境(如果有):在自己的M系列Mac上编译并检查包,看是否能正常加载
ps.so,排除本地代码的潜在编译问题。 - 查看CRAN近期构建状态:确认其他依赖
ps包的R包在macos-arm64环境下是否有类似报错,判断这是个别环境问题还是普遍兼容问题。
能否忽略该失败直接提交?
绝对不能直接跳过macos-arm64环境的检查后提交CRAN:
- CRAN当前对Apple Silicon(arm64)平台的兼容性要求严格,未通过该环境检查的包大概率会被拒绝。
- 如果排查后确认是rhub环境的临时问题(比如镜像更新导致的依赖缺失),可以尝试:
- 重新触发rhub的macos-arm64检查,清除环境缓存后重试;
- 使用CRAN官方提供的其他arm64检查工具再次验证;
- 若确实是环境端的bug,提交时在备注中详细说明排查过程、其他环境的通过日志,请求CRAN团队豁免,但这是最后选项,优先解决问题。
内容的提问来源于stack exchange,提问作者WinzarH
相关产品推荐
相关产品推荐

