R CMD check未遵循repos选项配置,如何解决依赖检查失败问题?
解决R CMD check无法访问CRAN仓库的问题
问题根源
R CMD check调用的是系统独立的R进程,不会继承RStudio控制台里通过options(repos)设置的仓库配置——哪怕你在RStudio里已经把仓库改成了代理地址,命令行执行检查时还是会用默认的CRAN官方地址,再加上终端环境没同步代理设置,就会出现无法访问索引的警告。
具体解决办法
1. 临时给终端设置仓库环境变量
在终端(不是RStudio的控制台窗口)先执行这行命令,把CRAN仓库指定为你的代理URL:
export R_REPOSITORIES="https://你的代理服务器URL"
接着再运行检查命令:
R CMD check ./
2. 永久配置系统级R仓库
找到R的系统配置文件:
- Linux/macOS:
/etc/R/Rprofile.site - Windows:
C:\Program Files\R\R-x.x.x\etc\Rprofile.site(x.x.x是你的R版本号)
打开文件后添加一行:
options(repos = c(CRAN="https://你的代理服务器URL"))
保存后,不管是RStudio还是R CMD check都会统一使用这个仓库配置。
3. 直接在检查命令里指定仓库
不用改环境或配置,直接把仓库参数附在R CMD check后面:
R CMD check --repos="https://你的代理服务器URL" ./
4. 同步终端的代理环境变量
如果你的代理需要HTTP/HTTPS环境变量才能生效,还要在终端里设置:
export http_proxy="http://代理地址:端口号" export https_proxy="http://代理地址:端口号"
要是代理需要用户名密码,格式改成http://用户名:密码@代理地址:端口号。
内容的提问来源于stack exchange,提问作者gcc
相关产品推荐
相关产品推荐

