1

对于企业环境,我希望我们的 R 用户仅使用我们的本地存储库。我已按照其他帖子的建议对 Rprofile.site、.Rprofile 和存储库文件进行了相应的必要更改,并且仅将存储库选项更改为本地选项时效果很好。但是,用户仍然可以通过从菜单中选择“Set CRAN Mirror”或运行“chooseCRANmirror()”命令来选择 CRAN 镜像,当她执行其中任何一项操作时,它将再次将标准 CRAN 存储库添加为存储库选项. 我该怎么做才能使用户看不到/获取 CRAN 镜像的默认选项,从而无法更改本地存储库?

编辑:正如@Dason 所说,我不想阻止专家用户更改存储库选项或其他选项。我想禁用选择镜像,以确保用户无法错误地访问远程存储库(并从那里下载包)。

4

1 回答 1

0

看起来在 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 文件。

于 2013-08-20T23:48:33.583 回答