\n\n无法从 GitHub 安装任何包,系统错误 267
\n
我新安装了 R (v4.1)、Rstudio 并刚刚安装了 devtools。\n我还另外安装了Rtools40并将其添加到我的路径(全局环境)中
\nRtools 似乎可以正常工作,并通过以下验证:Sys.which("make")& maketools::rtools_find()(输出如下)
我无法从 GitHub 安装任何软件包,例如rstudio/gt。对于任何 GitHub 包,该错误几乎都是相同的,总是说明system error 267
devtools::install_github("rstudio/gt")\nDownloading GitHub repo rstudio/gt@HEAD\nError: Failed to install \'gt\' from GitHub:\n create process \'C:/PROGRA~1/R/R-41~1.0/bin/x64/Rcmd.exe\' (system error 267, Der Verzeichnisname ist ung\xc3\xbcltig.\n) @win/processx.c:1040 (processx_exec\nRun Code Online (Sandbox Code Playgroud)\n正如建议的那样,我将 R 4.1.0 重新安装到了最简单的文件夹C:/R/\n尽管现在缺少波浪号,但错误仍然相同~
devtools::install_github("rstudio/gt")\nDownloading GitHub repo rstudio/gt@HEAD\nError: Failed to install \'gt\' from GitHub:\n create process \'C:/R/bin/x64/Rcmd.exe\' (system error 267, Der Verzeichnisname ist ung\xc3\xbcltig.\n) @win/processx.c:1040 (processx_exec)\nRun Code Online (Sandbox Code Playgroud)\n将 .libPaths 更改为没有任何特殊字符的文件夹
\n.libPaths( c( "D:/tmp" , .libPaths() ) )\n.libPaths()\n[1] "D:/tmp" "C:/Users/Bj\xc3\xb6rn/Documents/R/win-library/4.1"\n[3] "C:/R/library" \n\nError is still the same\nRun Code Online (Sandbox Code Playgroud)\npackageVersion(\'processx\')我更新了一些软件包,并检查了= 3.5.2的版本
install.packages("testthat") \ninstall.packages("pkgload") \ninstall.packages("devtools") \ninstall.packages("remote")\nRun Code Online (Sandbox Code Playgroud)\nSys.getenv 的内容
\n Sys.getenv(\'Path\')\n[1] "C:\\\\rtools40\\\\usr\\\\bin;C:\\\\R\\\\bin\\\\x64;C:\\\\rtools40\\\\usr\\\\bin;C:\\\\rtools40\\\\mingw64\\\\bin;\nRun Code Online (Sandbox Code Playgroud)\n> sessionInfo()\nR version 4.1.0 (2021-05-18)\nPlatform: x86_64-w64-mingw32/x64 (64-bit)\nRunning under: Windows 10 x64 (build 19042)\n\nMatrix products: default\n\nlocale:\n[1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 LC_MONETARY=German_Germany.1252\n[4] LC_NUMERIC=C LC_TIME=German_Germany.1252 \n\nattached base packages:\n[1] stats graphics grDevices utils datasets methods base\nRun Code Online (Sandbox Code Playgroud)\nSys.which("make")\n make \n"C:\\\\rtools40\\\\usr\\\\bin\\\\make.exe" \n\nmaketools::rtools_find()\n$version\n[1] \xe2\x80\x984.0\xe2\x80\x99\n\n$compiler\n[1] "gcc 8.3.0"\n\n$api\n[1] \xe2\x80\x988\xe2\x80\x99\n\n$PATH\n[1] "C:\\\\rtools40\\\\usr\\\\bin"\n\n$BINPREF\n[1] "C:/rtools40/mingw$(WIN)/bin/"\n\n$available\n[1] TRUE\n\n$compatible\n[1] TRUE \nRun Code Online (Sandbox Code Playgroud)\n
远程包的独立模式为我解决了这个问题,\nas 由processx维护者建议(G\xc3\xa1bor Cs\xc3\xa1rdi)这里
\ndevtools::install_github()只打电话remotes::install_github()。
\n但是,对于遥控器,可以选择以独立模式执行
资料来源:克兰
\n\n\n独立模式
\n如果安装了curl、git2r 和pkgbuild 软件包,则遥控器将使用它们来为安装过程的某些方面提供更快的实现。但是,如果您使用遥控器来安装或更新这些软件包(或其反向依赖项),则在安装过程中使用它们可能会失败(尤其是在 Windows 上)。
\n如果设置环境变量 R_REMOTES_STANDALONE="true"(例如 R Sys.setenv(R_REMOTES_STANDALONE="true")),您可以强制遥控器在独立模式下运行并仅使用其内部 R 实现。这将允许成功安装这些\n软件包
\n
通过以下几行代码,gt终于从github成功安装了。
\nSys.setenv(R_REMOTES_STANDALONE="true")\nremotes::install_github("rstudio/gt")\nRun Code Online (Sandbox Code Playgroud)\n感谢所有评论者的帮助!
\n为了避免每次要从 github 安装新软件包时都必须一遍又一遍地执行这些步骤(设置为独立模式,并使用遥控器安装),另一个方便的解决方法是回滚到以前的版本,如processx@rempsy 中所建议的那样github问题:
install.packages("pacman")\npacman::p_del(processx)\n# Installing previous verison 3.5.1\ninstall.packages("https://cran.r-project.org/src/contrib/Archive/processx/processx_3.5.1.tar.gz", repos=NULL, type="source") \nRun Code Online (Sandbox Code Playgroud)\n将 processx 回滚到 后version 3.5.1,devtools::install_github()按预期工作,例如
devtools::install_github("rstudio/gt")\nRun Code Online (Sandbox Code Playgroud)\n