【问题标题】:Is RCurl currently broken on Windows? (error:1407742E:SSL)RCurl 当前在 Windows 上是否损坏? (错误:1407742E:SSL)
【发布时间】:2021-04-29 10:12:17
【问题描述】:

美好的第一天。 我一直在使用 RCurl 来加载 https://raw。来自我们的 GitHub 存储库的表格,用于数据清理和分析。最近(可能是两周)每个脚本都在使用:

read.csv(text = getURL())

停止工作,抛出这样的错误:

Error in function (type, msg, asError = TRUE)  : error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

不幸的是,我对 SSL 和相关问题的理解非常有限(我仍然 git 在 bash 中使用登录凭据)。 问题是,在我工作的 Debian 机器上,代码可以完美执行。在删除 geURL() 并坚持使用简单的 read.csv() 后,即使是 Windows 代码也可以工作。 这很好,但我有依赖于 url.exists() 的函数,这些函数也被破坏了,我无法找到替代它。

    version
               _                           
platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          4                           
minor          0.3                         
year           2020                        
month          10                          
day            10                          
svn rev        79318                       
language       R                           
version.string R version 4.0.3 (2020-10-10)
nickname       Bunny-Wunnies Freak Out    

提前感谢您提供任何可能使我更接近解决方案的内容。

【问题讨论】:

  • 前段时间,GitHub 放弃了对 1.2 之前的 TLS 版本的支持,这似乎可能会导致您的问题。由于它是 Windows,因此您安装的 Windows 可能缺少更新的库。您可以尝试使用FN <- tempfile(); download.file(getURL(), FN, method="libcurl") 进行预下载,看看是否会产生不同的结果。
  • 嗨。首先,感谢您的快速回答。其次,我在 R 中运行命令,它确实产生了以下结果:Error in getURL() : argument "url" is missing, with no default
  • 我使用您的示例代码作为模板。将我的代码中的 getURL() 替换为您尝试使用的任何 URL。
  • 我明白了。重新运行它,我得到与描述的问题完全相同的错误。
  • 好吧,对不起,这是一个想法。

标签: r windows ssl rcurl


【解决方案1】:

问题是,用于 Windows 的 RCurl 包链接到一个非常旧版本的 curl (7.40)。由于我不知道的原因,即使是最新的 RCurl 包仍然链接到那个旧版本。

要使用最新版本的 curl,您必须使用 https://cran.r-project.org/bin/windows/Rtools/ 从源安装 RCurl。

要编译 RCurl,您需要使用“Rtools bash”通过以下命令安装带有相关头文件的 curl:

pacman -Sy

pacman -S mingw-w64-{i686,x86_64}-curl

之后,就可以从源码安装RCurl了:

install.packages("RCurl", type="source)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    相关资源
    最近更新 更多