安装开发版本的软件包时更新 rlang 时出现问题

use*_*462 6 r install.packages tidyr rlang

我正在尝试安装 的开发版本tidyr。当我尝试devtools::install_github("tidyverse/tidyr")或 时remotes::install_github("tidyverse/tidyr"),出现以下错误:

\n\n
> devtools::install_github("tidyverse/tidyr")\nDownloading GitHub repo tidyverse/tidyr@master\nDownloading GitHub repo r-lib/vctrs@master\nThese packages have more recent versions available.\nWhich would you like to update?\n\n1:   All\n2:   CRAN packages only\n3:   None\n4:   rlang    (0.3.4 -> 18856f22a...) [GitHub]\n5:   ellipsis (0.1.0 -> 9908b24a2...) [GitHub]\n\nEnter one or more numbers separated by spaces, or an empty line to cancel\n1: 1\nrlang    (0.3.4 -> 18856f22a...) [GitHub]\nellipsis (0.1.0 -> 9908b24a2...) [GitHub]\nDownloading GitHub repo r-lib/rlang@master\n\xe2\x88\x9a  checking for file \'C:\\Users\\owner\\AppData\\Local\\Temp\\RtmpYDrYNh\\remotes96bc1c295445\\r-lib-rlang-18856f2/DESCRIPTION\' ...\n-  preparing \'rlang\': (2s)\n\xe2\x88\x9a  checking DESCRIPTION meta-information ... \n-  cleaning src\n-  installing the package to process help pages (1.3s)\n-  cleaning src (27.6s)\n-  checking for LF line-endings in source and make files and shell scripts (445ms)\n-  checking for empty or unneeded directories (878ms)\n-  building \'rlang_0.3.4.9002.tar.gz\'\n\nInstalling package into \xe2\x80\x98C:/Users/owner/Documents/R/win-library/3.5\xe2\x80\x99\n(as \xe2\x80\x98lib\xe2\x80\x99 is unspecified)\nERROR: failed to lock directory \'C:/Users/owner/Documents/R/win-library/3.5\' for modifying\nTry removing \'C:/Users/owner/Documents/R/win-library/3.5/00LOCK-rlang\'\nIn R CMD INSTALL\nError in i.p(...) : \n  (converted from warning) installation of package \xe2\x80\x98C:/Users/owner/AppData/Local/Temp/RtmpYDrYNh/file96bc24b12ee3/rlang_0.3.4.9002.tar.gz\xe2\x80\x99 had non-zero exit status\n
Run Code Online (Sandbox Code Playgroud)\n\n

00LOCK-rlang按照警告的建议删除并重试。和以前一样,我被问到我想要更新哪些软件包,我选择了All。这次我在尝试更新时收到以下错误rlang

\n\n
installing to C:/Users/owner/Documents/R/win-library/3.5/rlang/libs/x64\nError in file.copy(files, dest, overwrite = TRUE) : \n  (converted from warning) problem copying .\\rlang.dll to C:\\Users\\owner\\Documents\\R\\win-library\\3.5\\rlang\\libs\\x64\\rlang.dll: Permission denied\n* removing \'C:/Users/owner/Documents/R/win-library/3.5/rlang\'\n* restoring previous \'C:/Users/owner/Documents/R/win-library/3.5/rlang\'\nError in file.copy(lp, dirname(pkgdir), recursive = TRUE, copy.date = TRUE) : \n  (converted from warning) problem copying C:\\Users\\owner\\Documents\\R\\win-library\\3.5\\00LOCK-rlang\\rlang\\libs\\x64\\rlang.dll to C:\\Users\\owner\\Documents\\R\\win-library\\3.5\\rlang\\libs\\x64\\rlang.dll: Permission denied\nExecution halted\nIn R CMD INSTALL\nError in i.p(...) : \n  (converted from warning) installation of package \xe2\x80\x98C:/Users/owner/AppData/Local/Temp/RtmpYDrYNh/file96bc74433a2d/rlang_0.3.4.9002.tar.gz\xe2\x80\x99 had non-zero exit status\n
Run Code Online (Sandbox Code Playgroud)\n\n

第二次尝试后的会话信息:

\n\n
> sessionInfo()\nR version 3.5.2 (2018-12-20)\nPlatform: x86_64-w64-mingw32/x64 (64-bit)\nRunning under: Windows >= 8 x64 (build 9200)\n\nattached base packages:\n[1] stats     graphics  grDevices utils     datasets  methods   base     \n\nloaded via a namespace (and not attached):\n [1] Rcpp_1.0.1        rstudioapi_0.10   magrittr_1.5      usethis_1.5.0     devtools_2.0.2    pkgload_1.0.2     R6_2.4.0          rlang_0.3.4       tools_3.5.2       pkgbuild_1.0.3   \n[11] sessioninfo_1.1.1 cli_1.1.0         withr_2.1.2       remotes_2.0.4     yaml_2.2.0        assertthat_0.2.1  digest_0.6.18     rprojroot_1.3-2   crayon_1.3.4      processx_3.3.0   \n[21] callr_3.2.0       fs_1.2.7          ps_1.3.0          curl_3.3          rpart_4.1-15      testthat_2.0.1    glue_1.3.1        memoise_1.1.0     compiler_3.5.2    desc_1.2.0       \n[31] backports_1.1.4   prettyunits_1.0.2\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用source("https://install-github.me/r-lib/rlang")解决了问题,但是为什么会devtools::失败remotes::install_github()呢?

\n

Jos*_*but 8

我找到了一个稍微不同的解决方案。

  1. 以管理员身份打开 Rgui.exe。我认为您实际上不需要以管理员身份打开 Rgui.exe,但我这样做了,所以我将保留它。
  2. 移动C:\...\R\win-library\3.5\rlang到另一个文件夹(该目录中不保留 rlang 文件夹)
  3. install.packages("rlang")
  4. 关闭Rgui
  5. 开始新的(正常)会话并享受吧!


Mos*_*ssa 7

我也经历过这个问题。请注意[...]\rlang\libs\x64\rlang.dll: Permission denied. 不允许当前 R 会话访问这些文件。要避免此问题,请通过在 Windows 搜索中Rgui.exe搜索或通过 来打开。右键单击并按,然后执行与之前相同的操作。RguiWin+QC:\Program Files\R\R-3.5.3\bin\x64\Rgui.exeRun as administrator

您还可以在管理模式下运行 RStudio。

  • 我有同样的问题。以管理员身份运行 R 对我来说不起作用。以管理员身份运行 RStudio 也不起作用。以管理员身份运行 Rgui 解决问题。我不明白原因,但它有效。 (4认同)