简体   繁体   中英

R Unable to Install Packages From GitHub (System Error 267 @win/processx.c:1040)

TL;DR

Unable to install any package from GitHub, System Error 267

I've newly setup R (v4.1), Rstudio and just installed devtools. I also additionally installed Rtools40 and added it to my path (global environment)

Rtools seems to work properly as validated with: Sys.which("make") & maketools::rtools_find() (output below)

Problem

I am unable to install any package from GitHub, eg rstudio/gt . The error is nearly identical for any GitHub Package, allways stating system error 267

devtools::install_github("rstudio/gt")
Downloading GitHub repo rstudio/gt@HEAD
Error: Failed to install 'gt' from GitHub:
  create process 'C:/PROGRA~1/R/R-41~1.0/bin/x64/Rcmd.exe' (system error 267, Der Verzeichnisname ist ungültig.
) @win/processx.c:1040 (processx_exec

Update

As suggested I reinstalled R 4.1.0 to the most simple folde possible C:/R/ The error ist still the same despite now lacking tildes ~

devtools::install_github("rstudio/gt")
Downloading GitHub repo rstudio/gt@HEAD
Error: Failed to install 'gt' from GitHub:
  create process 'C:/R/bin/x64/Rcmd.exe' (system error 267, Der Verzeichnisname ist ungültig.
) @win/processx.c:1040 (processx_exec)

Update 2:

Changed the .libPaths to a folder without any special characters

.libPaths( c( "D:/tmp" , .libPaths() ) )
.libPaths()
[1] "D:/tmp"                                     "C:/Users/Björn/Documents/R/win-library/4.1"
[3] "C:/R/library"  

Error is still the same

Update 3:

I updated some packages, and checked the version of packageVersion('processx') = 3.5.2

install.packages("testthat") 
install.packages("pkgload") 
install.packages("devtools") 
install.packages("remote")

Content of Sys.getenv

 Sys.getenv('Path')
[1] "C:\\rtools40\\usr\\bin;C:\\R\\bin\\x64;C:\\rtools40\\usr\\bin;C:\\rtools40\\mingw64\\bin;

Diagnostics

Session Info

> sessionInfo()
R version 4.1.0 (2021-05-18)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

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

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

Rtools successful installed / setup

Sys.which("make")
                              make 
"C:\\rtools40\\usr\\bin\\make.exe" 

maketools::rtools_find()
$version
[1] ‘4.0’

$compiler
[1] "gcc 8.3.0"

$api
[1] ‘8’

$PATH
[1] "C:\\rtools40\\usr\\bin"

$BINPREF
[1] "C:/rtools40/mingw$(WIN)/bin/"

$available
[1] TRUE

$compatible
[1] TRUE   

The standalone mode of the remotes package solved the issue for me, as suggested by the maintainer of processx (Gábor Csárdi) here

devtools::install_github() only calls remotes::install_github() .
However, for the remotes, there is the option to be exectued in standalone mode

Source: Cran

Standalone mode

remotes will use the curl, git2r and pkgbuild packages if they are installed to provide faster implementations for some aspects of the install process. However if you are using remotes to install or update these packages (or their reverse dependencies) using them during installation may fail (particularly on Windows).

If you set the environment variable R_REMOTES_STANDALONE="true" (eg in R Sys.setenv(R_REMOTES_STANDALONE="true")) you can force remotes to operate in standalone mode and use only its internal R implementations. This will allow successful installation of these packages

With the following lines of code, gt was finally successfull installed from github.

Sys.setenv(R_REMOTES_STANDALONE="true")
remotes::install_github("rstudio/gt")

Thanks all the commentators for your help!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM