为什么我在install.packages中收到警告:无法删除软件包“ tibble”的先前安装,权限恢复为“ tibble”?

问题描述

我试图加载库(tidyverse)。但是,我收到了如下错误

Error: package or namespace load Failed for ‘tidyverse’ in loadNamespace(j <- i[[1L]],c(lib.loc,.libPaths()),versionCheck = vI[[j]]): namespace ‘tibble’ 2.1.3 is already loaded,but >= 3.0.0 is required

我遵循了每个人的建议:

remove.package("tibble") 
install.packages("tibble")

但是,出现此错误

Warning in install.packages :
  cannot remove prior installation of package ‘tibble’
Warning in install.packages :
  problem copying D:\Rlibraries\00LOCK\tibble\libs\x64\tibble.dll to D:\Rlibraries\tibble\libs\x64\tibble.dll: Permission denied
Warning in install.packages :
  restored ‘tibble’

我在路径中发现问题-"D:\Rlibraries\00LOCK\tibble\..."

我像其他人建议的那样检查我的.libPaths()在stackoverflow上。我明白了:

[1] "D:/Rlibraries"                      "C:/Program Files/R/R-3.6.3/library"

我认为问题出在路径-“ D:/ Rlibraries / 00LOCK”,因为我的认库是"D:/Rlibraries"

有人知道为什么会发生这种情况以及如何解决这种迷惑吗?我以前从未遇到过这个问题。

解决方法

当软件包安装出错时,我也遇到了这种情况。

这个问题发生在其他人身上,pacman软件包管理软件包中甚至还有一个function against this

有时install.packages可能“严重失败,以至于无法删除锁目录:这会阻止进一步安装到库目录(或软件包的–pkglock),直到手动删除锁目录为止。” p_unlock删除留下的目录00LOCK。

您也可以手动执行:停止所有R / RStudio会话,找到00LOCK目录(在关闭RStudio时可能会消失),然后将其删除。

这篇文章解释了how to avoid the lock

,

pacman 包中的 p_unlock 对我不起作用。 我通过清除输出解决了它(在 R Studio 中:会话 -> 重新启动并清除输出)。