R 无法从 GitHub 安装包(系统错误 267 @win/processx.c:1040)
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
我新安装了 R (v4.1)、Rstudio 并刚刚安装了 devtools。
我还额外安装了 Rtools40 并将其添加到我的路径(全局环境)
Rtools 似乎可以正常工作,经验证:Sys.which("make")
& maketools::rtools_find()
(输出如下)
问题
我无法从 GitHub 安装 任何 软件包,例如rstudio/gt。对于任何 GitHub 包,错误几乎相同,总是显示 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
更新
按照建议,我将 R 4.1.0 重新安装到尽可能简单的文件夹中 C:/R/
尽管现在缺少波浪号 ~
,但错误仍然相同
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)
更新 2:
将 .libPaths 更改为没有任何特殊字符的文件夹
.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
更新 3:
我更新了一些包,查看了packageVersion('processx')
= 3.5.2
的版本
install.packages("testthat")
install.packages("pkgload")
install.packages("devtools")
install.packages("remote")
Sys.getenv
的内容
Sys.getenv('Path')
[1] "C:\rtools40\usr\bin;C:\R\bin\x64;C:\rtools40\usr\bin;C:\rtools40\mingw64\bin;
诊断
Session 信息
> 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 成功安装/设置
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
远程包的独立模式为我解决了这个问题,
正如 processx (Gábor Csárdi) here
的维护者所建议的那样
devtools::install_github()
只调用 remotes::install_github()
.
但是,对于遥控器,可以选择在独立模式下执行
来源: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" (e.g.
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
通过以下几行代码,gt终于从github安装成功了。
Sys.setenv(R_REMOTES_STANDALONE="true")
remotes::install_github("rstudio/gt")
感谢各位评论员的帮助!
2021 年 10 月更新
为了避免每次您想从 github 安装新软件包时都必须一遍又一遍地执行这些步骤(设置为独立模式,并使用遥控器安装),另一个方便的解决方法是回滚到根据@rempsy 在 github 问题中建议的 processx
的先前版本:
install.packages("pacman")
pacman::p_del(processx)
# Installing previous verison 3.5.1
install.packages("https://cran.r-project.org/src/contrib/Archive/processx/processx_3.5.1.tar.gz", repos=NULL, type="source")
processx 回滚到 version 3.5.1
后,devtools::install_github()
按预期工作,例如
devtools::install_github("rstudio/gt")
TL;DR
Unable to install any package from GitHub, System Error 267
我新安装了 R (v4.1)、Rstudio 并刚刚安装了 devtools。 我还额外安装了 Rtools40 并将其添加到我的路径(全局环境)
Rtools 似乎可以正常工作,经验证:Sys.which("make")
& maketools::rtools_find()
(输出如下)
问题
我无法从 GitHub 安装 任何 软件包,例如rstudio/gt。对于任何 GitHub 包,错误几乎相同,总是显示 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
更新
按照建议,我将 R 4.1.0 重新安装到尽可能简单的文件夹中 C:/R/
尽管现在缺少波浪号 ~
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)
更新 2:
将 .libPaths 更改为没有任何特殊字符的文件夹
.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
更新 3:
我更新了一些包,查看了packageVersion('processx')
= 3.5.2
install.packages("testthat")
install.packages("pkgload")
install.packages("devtools")
install.packages("remote")
Sys.getenv
的内容 Sys.getenv('Path')
[1] "C:\rtools40\usr\bin;C:\R\bin\x64;C:\rtools40\usr\bin;C:\rtools40\mingw64\bin;
诊断
Session 信息
> 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 成功安装/设置
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
远程包的独立模式为我解决了这个问题, 正如 processx (Gábor Csárdi) here
的维护者所建议的那样devtools::install_github()
只调用 remotes::install_github()
.
但是,对于遥控器,可以选择在独立模式下执行
来源: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" (e.g. 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
通过以下几行代码,gt终于从github安装成功了。
Sys.setenv(R_REMOTES_STANDALONE="true")
remotes::install_github("rstudio/gt")
感谢各位评论员的帮助!
2021 年 10 月更新
为了避免每次您想从 github 安装新软件包时都必须一遍又一遍地执行这些步骤(设置为独立模式,并使用遥控器安装),另一个方便的解决方法是回滚到根据@rempsy 在 github 问题中建议的 processx
的先前版本:
install.packages("pacman")
pacman::p_del(processx)
# Installing previous verison 3.5.1
install.packages("https://cran.r-project.org/src/contrib/Archive/processx/processx_3.5.1.tar.gz", repos=NULL, type="source")
processx 回滚到 version 3.5.1
后,devtools::install_github()
按预期工作,例如
devtools::install_github("rstudio/gt")