在R/RStudio中安装或更新软件包时,我发现了许多与此警告相关的问题,但似乎没有一个问题完全符合我的情况:
C:\Users\[myname]\RC\Users\[myname]\RStudioR_LIBS_USER 添加为用户环境变量,指向正确的目录.libPaths() 显示正确的目录,包括系统和用户trace(utils:::unpackPkgZip,edit = T)并编辑第140 Sys.sleep(0.5)行Sys.sleep(2),有时暂时工作,但编辑将不会停留...重置Sys.sleep(0.5)每个会话重启任何大于几Kb的包都会给出以下信息:
package ‘packagename’ successfully unpacked and MD5 sums checked
Warning in install.packages :
unable to move temporary installation ‘C:\Users\[myname]\R\win-library\3.4\file2b884fc37c13\packagename’ to ‘C:\Users\[myname]\R\win-library\3.4\packagename’
Run Code Online (Sandbox Code Playgroud)软件包无法安装或更新.所以,我的问题是:
unpackPkgZip永久保存?在这一点上,我很难过.我怀疑它与下载后临时锁定文件/目录的防病毒软件有关,但是我无法做到这一点.在Sys.sleep(2)似乎做的伎俩,但我不能继续这样做,每一个包之前安装或更新似乎并不能得到编辑留在原地.
ksl*_*err 32
在这个问题上,这是唯一对我有用的东西(卸载防病毒软件不会让我在任何地方,不幸的是),所以希望它适合你.
在Windows系统上,有时库的安装可能运行得太快,从而产生错误"无法移动临时安装".然后在用户库中找不到包,因为它尚未被移动...
要修复,请尝试: trace(utils:::unpackPkgZip, edit=TRUE)
然后转到代码中的第140行并更改Sys.sleep(0.5)为Sys.sleep(2.5)
这是一个不错的长期解决方案,不需要手动移动包,卸载软件,替换管理员职责或单独将包路由到某些位置.
小智 10
我原来的答复如下,但后来我找到了更好的解决方案.
执行以下行:
Trace(utils:::unpackPkgZip, edit=TRUE)
Run Code Online (Sandbox Code Playgroud)
请注意,那里有三个冒号,而不是两个冒号.
然后编辑第142行,从"Sys.sleep(0.5)"到:"Sys.sleep(2.0)",然后单击以保存编辑(行号可能略有不同).不幸的是,这并不适用于R会话,但只需10秒即可完成此操作,然后您可以将当前会话的软件包安装到您的内容中.
原始答案:
我在工作中遇到了同样的问题.我能够使用Sheldon建议的方法,但正如所指出的那样,很快就会变得乏味.作为替代方案,我发现我可以转到我的临时目录中下载的zip文件的位置(由install.packages报告),解压缩一个或多个文件(如果有依赖包,将会有多个zip文件) ),然后将所有解压缩的目录直接移动或复制到我的R\win-library\3.4目录中.这也不是很有趣,但根据Sheldon的方法,我发现它比通过调试器更少痛苦,特别是当涉及多个依赖项并且还必须安装时.
遇到同样的错误 - 似乎是公司 gp / 访问安全问题。
检查它无法写入的文件夹是否具有只读结构(右键单击 - 属性)也可能是值得的。该文件夹的地址可以通过运行:.libPaths()[1] in R 找到。
此问题的临时解决方案是使用下面的一段 R 代码解压缩并存储下载(但未移动)的包。您将收到一条错误消息,指出二进制包所在的位置(类似于:C:/Users/....AppData/...)
现在您可以简单地将文件从这里解压缩到您的 .libPaths() 位置
zipF <- list.files("C:/Users/<YOURNAMEHERE>/AppData/Local/Temp/Rtmp4Apz6Z/downloaded_packages", full.names = TRUE)
outDir <- .libPaths()[1]
for(i in 1: length(zipF)) {
unzip(zipF[i],exdir=outDir)
}
Run Code Online (Sandbox Code Playgroud)
更通用的解决方案仍然非常值得,因为不幸的是,这是在 Windows 上更新 R 时的常见问题。