簡體   English   中英

devtools :: install_github因CA證書錯誤而失敗

[英]devtools::install_github fails with CA cert error

當我嘗試調用install_github時,我收到以下錯誤(不僅是這個包,而是所有github包):

> install_github('ramnathv/slidify')
Downloading github repo ramnathv/slidify@master
Error in curl::curl_fetch_memory(url, handle = handle) :
Problem with the SSL CA cert (path? access rights?)

但是,如果我直接使用RCurl來訪問帶有ssl的github,我不會遇到任何問題:

>  x <- getBinaryURL(
          url='https://github.com/ramnathv/slidify/archive/master.zip',
          followlocation=1L
          )

無錯誤地工作,因此RCurl可以正確驗證SSL證書並下載存檔文件。

> sessionInfo()
R version 3.2.1 (2015-06-18)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 8 (jessie)

locale:
 [1] LC_CTYPE=en_US.utf8       LC_NUMERIC=C             
 [3] LC_TIME=en_US.utf8        LC_COLLATE=en_US.utf8    
 [5] LC_MONETARY=en_US.utf8    LC_MESSAGES=en_US.utf8   
 [7] LC_PAPER=en_US.utf8       LC_NAME=C                
 [9] LC_ADDRESS=C              LC_TELEPHONE=C           
 [11] LC_MEASUREMENT=en_US.utf8 LC_IDENTIFICATION=C      

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] RCurl_1.95-4.7 bitops_1.0-6   devtools_1.8.0

loaded via a namespace (and not attached):
 [1] httr_1.0.0      R6_2.1.0        magrittr_1.5    rversions_1.0.2
 [5] tools_3.2.1     curl_0.9.1      Rcpp_0.12.0     memoise_0.2.1  
 [9] xml2_0.1.1      stringi_0.5-5   git2r_0.10.1    stringr_1.0.0  
 [13] digest_0.6.8   

> curlVersion()

$age
[1] 3

$version
[1] "7.38.0"

$vesion_num
[1] 468480

$host
[1] "x86_64-pc-linux-gnu"

$features
   ipv6         ssl        libz        ntlm   asynchdns      spnego 
      1           4           8          16         128         256 
   largefile         idn tlsauth_srp     ntlm_wb 
    512        1024       16384       32768 

$ssl_version
[1] "OpenSSL/1.0.1k"

$ssl_version_num
[1] 0

$libz_version
[1] "1.2.8"

$protocols
[1] "dict"   "file"   "ftp"    "ftps"   "gopher" "http"   "https"  "imap"  
[9] "imaps"  "ldap"   "ldaps"  "pop3"   "pop3s"  "rtmp"   "rtsp"   "scp"   
[17] "sftp"   "smtp"   "smtps"  "telnet" "tftp"  

$ares
[1] ""

$ares_num
[1] 0

$libidn
[1] "1.29"

如果我使用httr::set_config( httr::config( ssl_verifypeer = 0L ) )那么我可以成功運行install_github但我更願意實際檢查ssl證書。

有人能提供解決方案嗎?

終於搞清楚了。

我安裝了兩個不同的ssl庫,出於某種原因,針對libcurl4-openssl-dev構建的RCurl包和針對libcurl4-nss-dev構建的curl包,但我只為openssl安裝了CA密鑰,而不是為nss安裝。

我用R中的remove.packages('curl')解決了我的問題,然后退出R並從shell中apt-get remove libcurl4-nss-devapt-get remove libcurl4-nss-dev啟動R和install.packages('curl')

我的錯誤導致了我的問題,就是使用RCurl而不是httrcurl測試SSL CA處理,這會讓我很快發現我的curl包鏈接到錯誤的SSL庫。

如果缺少httr lib,則會出現相同的錯誤

嘗試:

install.packages( “HTTR”)

我刪除了httr (直接從我的R win-library中刪除整個httr文件夾)並重新安裝它。 然后,從github安裝工作順利

當我使用庫漩渦時,我遇到了同樣的問題

經過幾次嘗試找到,我發現那是因為我沒有在R中安裝openssl。

所以:

install.packages("openssl")

那么,一切都好!

哦! 我使用的是Windows 10,而不是Linux

在為Coursera提交作業時,我遇到了與漩渦相同的錯誤。 卸載並重新安裝漩渦本身,curl和htrr(也缺少)沒有解決問題。 唯一真正有效的是:

install.packages( “OpenSSL的”)

還使用Windows 10和R 3.3.3。

確保,當前版本的R安裝了包curlinstall.packages('curl')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM