看起来在 utils/R/packages.R 源代码中,chooseCRANmirros() 调用函数 getCRANmirrors(all = FALSE, local.only = FALSE) 并执行以下操作:
getCRANmirrors <- function(all = FALSE, local.only = FALSE)
{
m <- NULL
if(!local.only) {
## try to handle explicitly failure to connect to CRAN.
con <- url("http://cran.r-project.org/CRAN_mirrors.csv")
m <- try(open(con, "r"), silent = TRUE)
if(!inherits(m, "try-error")) m <- try(read.csv(con, as.is = TRUE))
close(con)
}
if(is.null(m) || inherits(m, "try-error"))
m <- read.csv(file.path(R.home("doc"), "CRAN_mirrors.csv"),
as.is = TRUE)
if(!all) m <- m[as.logical(m$OK), ]
m
}
因此,如果 local.only 为 FALSE,它具有 CRAN url 的硬编码值。因此,我想我们必须将 local.only 设置为 TRUE,然后更改本地 CRAN_mirrors.csv 文件。