R 代理设置:软件包下载与 API 请求
追踪 R 会话环境以及软件包实际使用的 HTTP 客户端,而不是把旧版 R 中互不兼容的代理方案拼在一起。
如果 R 能安装某个软件包,但该软件包无法访问其 API,请比较两个发起请求的客户端。download.file()、RCurl 以及软件包自带的 HTTP 层未必读取相同的选项。
检查运行中会话的输入
从终端启动的程序会继承该终端的环境。桌面快捷方式或已在运行的 IDE 可能具有不同的值。合适的 R 启动环境文件可以包含:
http_proxy=http://proxy.example:8080
https_proxy=http://proxy.example:8080这些是带有示例端点的环境文件条目。对于通过公共中间人允许的公共软件包或 API 请求,HTTP 代理列表为这些值提供候选。像 options(download.file.method = "libcurl") 这样的 R 表达式应放在 R 代码中,而不是 .Renviron 中。把看似正确的设置放进错误的格式,它会一直不被使用。
识别由 R 的站点/用户、环境和工作目录规则选定的启动文件。项目本地文件可以解释同一 IDE 中两个项目之间的差异。更改预期的文件并重启相关会话;仅仅编辑它不会更新已在运行的进程。
追踪失败软件包的请求
确定实际的下载方法或 HTTP 实现。外部 curl 可执行文件、R 的 libcurl 方法和 RCurl 是各自支持不同输入的不同使用方。在隐藏密钥的情况下,通过失败的软件包比较同一目标。
让方案与该实现及 R 版本保持匹配。旧的 Windows --internet2 建议描述的是历史行为。还要保留真实代理监听器的传输方案:HTTPS 目标仍可使用 HTTP 代理端点。通过其他下载器成功安装,既不能证明此客户端的配置,也不能证明代理对此请求的可用性。