1

企業環境の場合、R ユーザーにはローカル リポジトリのみを使用してもらいたいと考えています。他の投稿で提案されているように、Rprofile.site、.Rprofile、および repositories ファイルに対応する必要な変更を加えました。リポジトリ オプションをローカル オプションにのみ変更する場合は正常に機能します。ただし、ユーザーはメニューから「CRAN ミラーの設定」を選択するか、「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 に答える