我们有内部本地镜像,不需要使用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)
答案 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”选项