错误设置证书验证位置,安装_install_github

9

我正在尝试从Github安装一个软件包,但是当我使用install_github时,一直报错。

library(devtools)
install_github(repo="swirl", username="ncarchedi")
在下载来自https://github.com/ncarchedi/swirl/archive/master.zip的swirl.zip时发生错误
在function (type, msg, asError = TRUE)中出现错误: 
无法设置证书校验位置:
CAfile:/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RCurl/CurlSSL/cacert.pem
CApath:none

我已经尝试安装了几个不同的软件包(包括更新版本的ggmap),但总是出现相同的错误。这必定与RCurl有关,但是我不明白问题出在哪里,也不知道如何解决。我的devtools(Version 1.3)和RCurl(Version 1.95-4.1)都很新。我正在运行Mac上的R version 3.0.1 ("Good Sport")。

sessionInfo()的结果:

sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages: [1] stats graphics grDevices utils datasets methods base
other attached packages: [1] RCurl_1.95-4.1 bitops_1.0-5 devtools_1.3 loaded via a namespace (and not attached): [1] digest_0.6.3 evaluate_0.4.3 httr_0.2 memoise_0.1 parallel_3.0.1 stringr_0.6.2 [7] tools_3.0.1 whisker_0.3-2

看起来是RCurl的问题。这个文件实际上存在吗:/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RCurl/CurlSSL/cacert.pem? - Thomas
嗯,在我的Mac 10.8.5上可以运行。安装rCharts的这条评论可能会有用 https://github.com/ramnathv/rCharts/issues/135#issuecomment-20140615 - sckott
是的,就像@Thomas所说的那样,你是否已经安装了libcurl?尝试在命令行上查找curl-config以查看是否已安装,如果没有,请按照此处的说明进行安装http://www.omegahat.org/RCurl/FAQ.html。虽然也许你无法在没有安装curl的情况下安装RCurl... - sckott
是的,我已经安装了RCurl,并且正好在你提到的位置(/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RCurl/CurlSSL/cacert.pem)。目录中有3个文件:boost.pem、ca-bundle.crt和cacert.pem。 - Sarah Supp
1
这个建议尝试重新安装RCurl http://stackoverflow.com/a/16547624/1091766 - 尝试重新安装RCurl - sckott
显示剩余3条评论
3个回答

8
问题是由于R软件包curl的更改引起的。
您可以按照以下步骤解决问题:
1). 打开新的MRO会话并删除curlhttr软件包:
remove.packages(c("curl","httr"))

2). 重新启动MRO并再次使用install.packages()函数安装软件包:

install.packages(c("curl", "httr"))

3). 设置环境变量 CURL_CA_BUNDLE

Sys.setenv(CURL_CA_BUNDLE="/utils/microsoft-r-open-3.4.3/lib64/R/lib/microsoft-r-cacert.pem")

4). 尝试使用install_github()从github安装软件包(现在应该可以正常工作):

例如:

install_github("ropensci/tokenizer")

参考资料:

rvest的read_html函数无法正常工作


在Ubuntu 18.04服务器上,我必须先安装libcurl4-openssl-dev才能安装curl。然后运行Sys.setenv(CURL_CA_BUNDLE="/opt/microsoft/ropen/3.5.1/lib64/R/lib/microsoft-r-cacert.pem")。 - rinzy kutex

2

这个与之类似的问题的SO回答建议尝试重新安装RCurl,这可能会修复您机器上curl的路径(我猜测),无论如何,请尝试。


1
我无法使用这个解决方案修复。 - Shixiang Wang

0
我在向 Github 推送更改时遇到了这个错误:
git config --global http.sslverify "false" 可以解决这个问题。

这里有原始讨论的链接:
https://github.com/npm/npm/issues/1484


1
它可以工作,但跳过 SSL 验证不是一个好的做法。 - Tito

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接