web-dev-qa-db-ja.com

devtools :: install_githubがCA証明書エラーで失敗する

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証明書を確認したいと思います。

誰かが解決策を提供できますか?

14
jgilligan

ついにこれを理解した。

2つの異なるsslライブラリをインストールし、何らかの理由で、libcurl4-openssl-devに対してビルドされたRCurlパッケージとlibcurl4-nss-devに対してビルドされたcurlパッケージをインストールしましたが、nssではなくopensslにのみCAキーをインストールしました。

Rでremove.packages('curl')を実行してから、Rを終了し、シェルから_apt-get remove libcurl4-nss-dev_ Rを開始してinstall.packages('curl')で問題を解決しました。

私の質問につながった私の間違いは、RCurlまたはhttrの代わりにcurlを使用してSSLCA処理をテストすることでした。これにより、すぐにcurlパッケージが間違ったSSLライブラリにリンクされていました。

19
jgilligan

httr libが欠落している場合、同じエラーが表示されます

試してください:

install.packages( "httr")

1
MaazKhan47

Rの現在のバージョンにパッケージcurlがインストールされていることを確認してください:install.packages('curl')

0
pandi

ライブラリスワールを使用すると、同じ問題が発生しました。

何度か試してみたところ、Rにopensslをインストールしていないことが原因であることがわかりました。

そう:

install.packages("openssl")

その後、すべて大丈夫です!

ああ! LinuxではなくWindows10を使用しています

0
Cavin

httrを削除して(httrフォルダー全体をR win-libraryから直接削除)、再インストールしました。その後、githubからのインストールはスムーズに機能しました

0
Santi XGR

Courseraの課題を送信しているときに、渦巻きで同じエラーが発生していました。 swirl自体をアンインストールして再インストールすると、curlとhtrr(これも欠落していました)は問題に対処しませんでした。実際に機能したのは次のとおりです。

install.packages( "openssl")

Windows10およびR3.3.3も使用します。

0
ingtob