如何在 R 中选择 CRAN 镜像

Posted

技术标签:

【中文标题】如何在 R 中选择 CRAN 镜像【英文标题】:How to select a CRAN mirror in R 【发布时间】:2012-07-14 08:21:35 【问题描述】:

我正在尝试通过 R 提示符安装软件包,方法是执行以下操作:

install.packages('Rmysql')

但是输出如下:

--- Please select a CRAN mirror for use in this session ---

没有别的了!我找不到这个非常基本的问题的解决方案。为了选择 CRAN 镜像,我应该输入什么?

编辑:

操作系统:Mac-OS X 10.6.8 R 版本:2.15.0

【问题讨论】:

它应该提供一个从 1 到 100 对应镜像的数字列表,尝试输入 84 并回车 还要添加你正在使用的操作系统,以及 R 的版本 要么会弹出一个窗口,其中包含选择项,要么应在控制台中显示选择项列表。您是否检查了带有选项的单独窗口?你是如何运行 R 的? @pyCthon 我输入了 84,但没有返回任何内容。 @sayhey69 我只是通过从终端调用提示符来运行 R。我只需输入 r,就会出现解释器。我从来没有弹出任何单独的窗口要求选择。 【参考方案1】:

您应该获得一个带有存储库列表的窗口或带有一些选项的文本菜单。但是如果没有出现,您可以随时使用repos 参数指定从哪里下载包的镜像。通过这样做,R 将不再询问您有关存储库的信息。示例:

install.packages('RMySQL', repos='http://cran.us.r-project.org')

这里有一个list of mirrors 代表 R。

【讨论】:

对我来说,repos弹窗来了,我点了一个镜像,然后什么也没发生;同时,这工作得很好。程序化解决方案 > 交互式解决方案,照常!谢谢! 这里有一些镜像可供选择,请善待:cran.r-project.org/mirrors.html 我发现这是将最近的软件包安装到 MRO 中的有用解决方法。我花了一天时间尝试安装最近构建的软件包,但 checkpoint 函数没有像使用 Anaconda 的 R 发行版 v3.4.3 所描述的那样工作,快照设置为 2017-09-01。【参考方案2】:

这是我所做的,基本上直接来自example(Startup)页面:

## Default repo
local(r <- getOption("repos")
       r["CRAN"] <- "http://cran.r-project.org" 
       options(repos=r)
)

~/.Rprofile

编辑: 因为现在是 2018 年,我们可以补充一点,在过去几年中,URL "https://cloud.r-project.org" 更可取,因为它反映了 a) https 访问和 b) “始终靠近-你”CDN。

【讨论】:

我认为这应该是公认的答案。 It Just Works(tm),在所有情况下,包括在无头系统(服务器、物联网等)上。谢谢,德克。 几年后的事后看来,我们现在是一个正确的 CDN,可以保证每个人都在网络上接近,我们现在使用https,所以将这个https://cloud.r-project.org 作为 URL。 我希望你不要介意,Dirk,但我只是编辑了你的帖子以反映你的建议。 如果我想要的话,我可以在四个小时前自己完成。我更愿意让历史记录说话。但是因为破坏者会来,所以我写了一个附言。【参考方案3】:

我喜欢:

chooseCRANmirror()

这将在输出中打印镜像列表(不用担心弹出窗口,因为您是从终端运行它),然后输入您想要的数字。

【讨论】:

糟糕,chooseCRANmirror(81) 会提示您输入数字。全部在控制台中。 注意:这似乎不会更新 /etc/R/Rprofile.site 或 ~/.Rprofile。 (所以,选择一个已经消失的替代旧镜像是不好的。最好直接编辑上面的文件。) @DarrenCook 你可能是对的,但我发现很多人会被这些文件吓倒。我知道我是。 chooseCRANmirror(ind=81) 可能是 Jared 的意思。它会绕过提示。 也可以在.Rprofile中设置options(menu.graphics = FALSE)【参考方案4】:

存储库选择屏幕无法在您的系统 (OS X) 上显示,因为 OS X 不再包含 X11。 R 尝试通过 X11 向您显示提示。从http://xquartz.macosforge.org/landing/ 安装 X11。然后运行安装命令。将显示 repo 选择提示。

【讨论】:

这应该是公认的答案。有关 OS X 中 X11 支持的 Apple 支持文章位于 support.apple.com/kb/HT5293?viewlocale=en_US&locale=en_US 这个问题很可能是因为X11导致窗口不显示,但可以说chooseCRANmirror()/repos参数是更简单的解决方案。【参考方案5】:

我用过

chooseCRANmirror(81)

它会提示您选择国家。 然后您可以通过键入那里指定的国家/地区镜像代码来进行选择。

【讨论】:

【参考方案6】:

我使用 Dirk 建议的 ~/.Rprofile 解决方案,但我只是想指出

chooseCRANmirror(graphics=FALSE)

似乎是明智的做法,而不是

chooseCRANmirror(81)

,这可能有效,但涉及到神奇的数字 81(或者这是将旅游业推广到 81 = 英国(布里斯托尔):-) 的微妙方式)

【讨论】:

【参考方案7】:

如果您需要以非交互方式设置镜像(例如在部署脚本中进行 rbundler 安装),您可以这样做:

第一次手动运行:

chooseCRANmirror()

选择最适合您的镜像编号并记住它。然后自动选择:

R -e 'chooseCRANmirror(graphics=FALSE, ind=87);library(rbundler);bundle()'

其中 87 是您要使用的镜像编号。这个 sn-p 还会为您安装 rbundle。如果你愿意,你可以省略它。

【讨论】:

【参考方案8】:

在 macOS 上,我有您所说的确切内容:“请选择”提示,然后仅此而已。

在我打开(并更新;不知道这是否相关)X-Quartz,然后重新启动 R 并再次尝试后,几秒钟后我得到了一个 X-window 镜像列表可供选择。第三次以后更快了。

【讨论】:

【参考方案9】:

你也可以通过运行它或将它放在你的 Rprofile 中来禁用所有的图形菜单

options(menu.graphics = FALSE)

【讨论】:

【参考方案10】:

应该会弹出一个下拉菜单供您选择(或者您会得到一堆可供选择的数字),无论您是在终端中使用 R 还是在 RStudio 等 IDE 中使用。这在 Windows、Mac OS 和大多数 Linux 系统上受支持。但是,它可能需要额外的配置或依赖项,例如 X-windows。

要在使用远程访问时启用 X-windows,请使用以下 -XY 标志:

ssh -XY username@server.domain

通常有一个默认 repo,但如果您有任何问题,例如运行脚本或 Rmarkdown/knitr,可以指定它。每次安装时,您都可以使用 repo opset 镜像或 CRAN 存储库:

install.packages("package", repo="<your.nearest.mirror>")

建议使用离您最近的镜像以加快下载速度。例如:

install.packages("RMySQL", repos="https://cran.stat.auckland.ac.nz/")

您还可以在会话中设置repos 选项,这样每次交互式会话(或脚本)只需设置一次。可以查看repos是否配置了:

options(repos)

如果您得到"Error in options(repos) : object 'repos' not found",那么您可以设置存储库选项。例如:

options(repos = "https://cran.stat.auckland.ac.nz/")

然后它应该像往常一样安装软件包。例如:

install.packages("RMySQL")

正如其他人所提到的,您可以在 .Rprofile 文件中配置存储库,并在您的所有脚本中进行这项工作。您是喜欢系统上的这些“全局”选项还是会话或脚本中的“本地”选项取决于您。这些“本地”选项需要更多时间来使用每个会话,但如果其他人没有您的 .Rprofile,他们也可以使用您的脚本。

【讨论】:

【参考方案11】:

加入~/.Rprofile

local(r <- getOption("repos")
    r["CRAN"] <- "mirror_site"  #for example, https://mirrors.ustc.edu.cn/CRAN/
    options(repos=r)
    options(BioC_mirror="bioc_mirror_site") #if using biocLite
)

【讨论】:

以上是关于如何在 R 中选择 CRAN 镜像的主要内容,如果未能解决你的问题,请参考以下文章

从 CRAN 镜像安装具有依赖项的本地 R 包

如何在Conda中安装R库

从CRAN镜像安装具有依赖关系的本地R包

如何创建R包并将其发布在 CRAN / GitHub 上--转载

在 CRAN R 中使用 BETWEEN 命令进行 SQL 查询以选择日期

R 包的 CRAN 提交中的 DOI?