【问题标题】:How do I tell the R interpreter how to use the proxy server?如何告诉 R 解释器如何使用代理服务器?
【发布时间】:2011-01-28 20:08:06
【问题描述】:

我正在尝试让 R(在 Windows 上运行)从 Internet 下载一些包,但下载失败,因为我无法让它正确使用必要的代理服务器。当我尝试 Windows 菜单选项 Packages > Install package(s)... 并选择 CRAN 镜像时的输出文本是:

> utils:::menuInstallPkgs()
--- Please select a CRAN mirror for use in this session ---
Warning: unable to access index for repository http://cran.opensourceresources.org/bin/windows/contrib/2.12
Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/2.12
Error in install.packages(NULL, .libPaths()[1L], dependencies = NA, type = type) :
no packages were specified
In addition: Warning message:
In open.connection(con, "r") :
cannot open: HTTP status was '407 Proxy Authentication Required'

我知道代理的地址和端口,也知道自动配置脚本的地址。我不知道认证叫什么,但是在使用代理时(在浏览器和其他一些应用程序中),我在弹出的对话框窗口中输入用户名和密码。

要设置代理,我尝试了以下各项:

  • Sys.setenv(http_proxy="http://proxy.example.com:8080")
  • Sys.setenv("http_proxy"="http://proxy.example.com:8080")
  • Sys.setenv(HTTP_PROXY="http://proxy.example.com:8080")
  • Sys.setenv("HTTP_PROXY"="http://proxy.example.com:8080")

对于身份验证,我同样尝试将http_proxy_user 环境变量设置为:

  • ask
  • user:passwd
  • 保持原样

我是否以正确的方式使用正确的命令?

【问题讨论】:

  • 看起来不错。您是否也尝试使用 --internet2 选项启动 R(我想是在 Windows 上?)?
  • @Dirk E.:是的;我检查并发现我运行 R 的开始菜单快捷方式设置为使用--internet2 选项。 (是的,它在 Windows 上;我现在已经编辑了这个问题以明确这一点。)
  • 好的,好的,你也可以尝试设置环境的键=值对。文件中的变量 Renviron 甚至是整个安装范围的 Renviron.site --- 请参阅 help(Startup)
  • @Dirk E.:当我尝试将它放入我的 Renviron.site 时出现同样的错误; HTTP_PROXYHTTP_PROXY_USERRenviron.site 文件填充。

标签: r proxy


【解决方案1】:

你有两个选择:

  1. 使用 --internet2 或 setInternet2(TRUE) 并在控制面板的 Internet 选项中设置代理详细信息
  2. 不要使用 --internet2 或 setInternet2(FALSE),而是指定环境变量

编辑:一个技巧是,你不能在 1 和 2 之间改变主意,在你在会话中尝试之后,即如果你运行命令 setInternet2(TRUE) 并尝试使用它,例如install.packages('reshape2'),如果失败,你就不能调用 setInternet2(FALSE)。您必须重新启动 R 会话。

从 R 版本 3.2.0 开始,setInternet2 函数可以设置互联网连接设置并在同一个 R 会话中更改它们。无需重启。


使用选项 2 时,一种指定用户名和密码的方法(既简洁又美观)是 http_proxy="http://user:password@proxy.example.com:8080/"

过去,我最幸运的是选项 2

【讨论】:

  • +1。我无法让选项 1 起作用,但选项 2 可以解决问题。谢谢!
【解决方案2】:

如果您希望每次使用 R 时都使用 internet2,您可以将以下行添加到位于 R.x.x\etc\Rprofile.site 的 Rprofile.site 文件中

utils::setInternet2(TRUE)

【讨论】:

    【解决方案3】:

    install.packages("RCurl")

    这将解决您的问题。

    【讨论】:

      猜你喜欢
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      相关资源
      最近更新 更多