renv:restore() always fails in windows

949 views Asked by At

Whenever I want to recreate a project on my windows machine using renv:restore() it always fails installing packages. I always get the same error (although the packages may change):

Retrieving 'https://cloud.r-project.org/src/contrib/Archive/xfun/xfun_0.21.tar.gz' ...
Error: failed to retrieve package 'xfun'
In addition: Warning messages:
1: curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate. 
2: curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate. 
3: download failed [error code 35] 
4: curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate. 
5: curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate. 

This is my session info:

> sessionInfo()
R version 4.0.5 (2021-03-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United Kingdom.1252    LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C                            LC_TIME=English_United Kingdom.1252    

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

loaded via a namespace (and not attached):
[1] compiler_4.0.5 tools_4.0.5    renv_0.12.0   

And this might also be useful:

> getOption("download.file.method")
[1] "wininet"
> renv:::renv_download_file_method()
[1] "curl"
>

After running: Sys.setenv(RENV_DOWNLOAD_METHOD = "curl") (or wininet or libcurl) I always get the same error as before.

As a workaround I did the following:

  1. Close the project
  2. Install package as normal (without renv)
  3. Open the project using renv
  4. Restore snapshot

If the packages have previously been installed, they will be symlinked and they would work.

Unfortunately, this is extremely cumbersome, as many packages have dependencies and I have to manually install them all, and that's precisely one of the things I want to avoid and one of the reasons for using renv!

1

There are 1 answers

2
ccamara On BEST ANSWER

For the sake of documentation: after following this answer https://github.com/rstudio/renv/issues/735#issuecomment-825778542 from Kevin Ushey, I managed to make it work:

  1. Update renv to last version (currently, 0.13.2)
  2. Run Sys.setenv(RENV_DOWNLOAD_METHOD = "wininet")
  3. Run renv::restore()