在安装R中的依赖包时出现“无法移动临时安装”的错误。

4

当我安装一个包时,先会先安装依赖包,然后再安装实际的包。对于所有的依赖包,我都会收到"unable to move temporary installation"警告,但对于实际包没有这样的警告。但是当我加载它时,这个包会出现错误。

例如,当我执行install.packages("mlr")时,它会安装所有依赖项,并显示各种警告,例如:

package ‘BBmisc’ successfully unpacked and MD5 sums checked
Warning in install.packages :
  unable to move temporary installation ‘D:\Documents\R\win-library\3.2\filef3811142c73\BBmisc’ to ‘D:\Documents\R\win-library\3.2\BBmisc’

我之前忽略了这个警告,因为它只是一个警告。不幸的是,library(mlr) 给了我一个错误:Error: package ‘BBmisc’ required by ‘mlr’ could not be found,所以我最终无法忽略它。
直接运行install.packages("BBmisc") 没有产生警告。
怎么回事?除了自己安装所有依赖项外,我该如何解决这个问题?
如果需要会话信息,请参考以下内容:
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_Singapore.1252  LC_CTYPE=English_Singapore.1252   
[3] LC_MONETARY=English_Singapore.1252 LC_NUMERIC=C                      
[5] LC_TIME=English_Singapore.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.2.2

运行杀毒软件?在Windows中经常是这种问题的根源。 - user3710546
是的,我无法禁用它(办公环境)。有什么方法可以验证这是否是原因? - Ricky
4个回答

14

这个问题是由杀毒软件引起的(很可能),正如用户3710546所建议的那样。如果您无法禁用杀毒软件,则可以使用此命令在软件包解压缩功能中启用调试来解决问题:

debug(utils:::unpackPkgZip)

这将允许您逐步执行代码(通过多次按下回车键)。这只是使函数运行变慢,从而给防病毒软件时间来完成其对新文件的扫描,然后R才想要复制它们。

我在这里找到了这个解决方案。


最近我也遇到了同样的问题,可能是由于公司IT部门做出的更改所致。有些软件包可以正常安装,但很多软件包无法安装。在安装有问题的软件包之前运行上面的调试命令完美解决了这个问题。我只需要点击继续不超过3次,安装仍然只需要几秒钟。 - user3594490

2

以下方法对我在Windows 10上安装shiny包非常有帮助:

  1. 我在/library文件夹中创建了“shiny”文件夹。
  2. 我将工作目录设置为这个shiny文件夹。
  3. 然后执行以下命令:install.packages("shiny",destdir="./",lib="./")
  4. 尽管仍然出现相同的错误,但现在zip文件已经下载到shiny文件夹中。
  5. 有两个zip文件:httpuv.zip和shiny.zip
  6. 我将shiny zip文件的内容提取到shiny文件夹中,将httpuv zip文件的内容提取到httpuv文件夹中。
  7. 为了保险起见,我重新启动了R studio。然后运行library(shiny),嘿,它像魔法一样正常工作了..!!!

1
我尝试了这里和其他地方提出的所有解决方案。我在一个大公司中运行Windows 7,其中强制使用防病毒软件等。 对我来说解决办法是:
  1. 卸载R和RStudio
  2. 删除所有与R有关的文件(包括隐藏文件)
  3. 以管理员身份安装R和RStudio
  4. 以管理员身份运行RStudio
唯一的缺点是启动RStudio时会出现警告(以管理员身份运行)。 所有更新和安装都完美无误。

出于安全原因,以管理员权限运行程序应该是最后的选择。 - gonczor
你当然是完全正确的。但这是我能找到的唯一解决方案,我已经尝试了所有我能找到的建议解决方案。这也包括了一个全新的Windows 10安装(与我的W7相同的安全措施)。所有的尝试都失败了,所以这是最后的办法。我想知道为什么在用户目录中移动文件本身就会构成安全风险。 - Claus Bo Hansen

0
如果您在安装包之前运行以下语句,则应该安装该软件包:

trace("unpackPkgZip", where=asNamespace("utils"), quote(Sys.sleep(2.5)), at=14L 
,print=FALSE)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接