安装R包时no_proxy和http_proxy

时间:2015-09-16 01:35:51

标签: r cran

我们有内部本地镜像,不需要使用http_proxy。

但是对于某些软件包,存在从Internet下载的第三方依赖项。示例stringi下载名为[1]

的内容

那么如何对R说不使用代理获取内部镜像。

我尝试过以下操作,但无效。

Sys.setenv(http_proxy="http://proxydetails.com")
Sys.setenv(https_proxy="http://proxydetails.com")
Sys.setenv(HTTP_PROXY="http://proxydetails.com")
Sys.setenv(HTTPS_PROXY="http://proxydetails.com")
Sys.setenv(no_proxy='localmirror.com')

如果我保留所有这些,那么我会收到错误[2] 如果我注释掉http_proxy设置,那么它会给出错误[1]

[1] download.file出错(粘贴(href,fname,sep =""),outfname,mode =" wb"):无法打开网址' http://static.rexamine.com/packages/icudt55l.zip '

[2] 错误日志

[cloud-user @ rstudio-test2~] $ sudo ./install.sh [1]" stringi" [1]"检查包stringi" 加载必需的包:stringi [1]"安装包stringi" 警告:无法访问存储库http://localmirror/src/contrib的索引 警告信息: 1:在库中(包,lib.loc = lib.loc,character.only = TRUE,logical.return = TRUE,:   没有名为'stringi'的包 2:包'stringi'不可用(对于R版本3.1.2)

1 个答案:

答案 0 :(得分:2)

我有同样的问题并设法通过设置两个R选项来解决它:

  • options(download.file.method =“curl”):设置R下载方法卷曲

  • 选项(download.file.extra = paste0(“ - noproxy”, your_internal_cran_hostname )):不要为此特定主机使用代理

似乎R默认下载方法仅支持no_proxy =“*”,这就是你必须使用curl的原因。

您可以在R_HOME / etc / .Rprofile中包含这两行,以使这些更改持久化。

希望这有帮助!

PS:如果要删除下载期间打印的红色消息,可以在download.file.extra中添加“-s”选项