【问题标题】:Windows 7, update.packages problem: "unable to move temporary installation"?Windows 7,update.packages 问题:“无法移动临时安装”?
【发布时间】:2011-08-07 17:09:43
【问题描述】:

在授予我的用户对 R 文件夹的完全权限后(如 here 所述),我在 Windows 7 中使用 R 2.13.0。 这让我可以很好地安装新软件包。

但是,当使用 update.packages() 更新现有包时,我不断收到以下错误(例如,在更新 MASS 包时):

成功解包“MASS”包并检查 MD5 和

警告:无法移动临时安装 'C:\程序 文件\R\R-2.13.0\库\file6cae3bcf\MASS' 到'C:\程序 文件\R\R-2.13.0\库\MASS'

关于如何解决此问题的任何建议?

p.s:以管理员身份运行 R 或将库位置从 Program Files 中移出不是解决方案(这是一个 hack - 但我正在寻找解决方案)

【问题讨论】:

  • 这只是一个警告。 sessionInfo(package="MASS") 的结果是什么?
  • 您使用的是 Windows。因此,唯一可靠的解决方案是在 Program Files 之外安装 R。您确定尝试更新时没有加载 MASS 包吗? IE。在您更新 detach(package:MASS) 后是否收到相同的警告?
  • @Andrie :是的,我有点快。然而,这是一个警告,表明 MASS 包没有更新。
  • 六年后我来到这里,尝试为 R 3.4.2 安装软件包并遇到此问题。去搞清楚。有趣的是,这是一个间歇性问题 - 有时安装工作,有时没有。可能取决于防病毒扫描程序最近下载的签名。 Sheldon's answer 比去公司 IT 工作得更好。

标签: r windows-7 permissions packages file-permissions


【解决方案1】:

我发现问题确实是防病毒“实时文件系统保护”。我执行以下操作来解决问题:

trace(utils:::unpackPkgZip, edit=TRUE)

我编辑第 140 行(R 3.4.4 中的第 142 行):

Sys.sleep(0.5)

到:

Sys.sleep(2)

我好像防病毒软件阻止了包 tmp 目录的创建。将其更改为 2 秒后,错误消失了。

编辑:以编程方式执行此操作

trace(utils:::unpackPkgZip, quote(Sys.sleep(2)), at = which(grepl("Sys.sleep", body(utils:::unpackPkgZip), fixed = TRUE)))

(学分@DavidArenburg)

【讨论】:

  • 我现在已经反复这样做了(确实暂时工作),但由于某种原因,编辑不会坚持......一段时间后或任何会话重新启动它回到Sys.sleep(0.5)。如何使编辑永久生效?
  • 还发现这是一个临时解决方案,重启后 Sys.sleep 恢复到 0.5 秒 - 希望 R 的下一次更新能解决这个问题
  • 我昨天安装了 R 3.5,问题消失了,Sys.sleep(0.5) 行也被删除了,所以我想它不再需要了!
  • 您也可以这样做有问题,例如trace(utils:::unpackPkgZip, quote(Sys.sleep(2)), at = which(grepl("Sys.sleep", body(utils:::unpackPkgZip), fixed = TRUE)))
  • @DavidArenburg,很好! (我认为您的意思是编程方式:P)
【解决方案2】:

只是为了更新大家,我(认为我)找到了问题的根源:antivirus

“实时文件系统保护”阻止 R 在下载文件后在文件夹之间复制文件。 将 R 目录添加到异常列表后(加上添加用户权限并在 D:\R 上安装 R),问题就消失了。完成所有这些工作后,我不妨切换到 Linux(我应该,真的……)

(我用以上信息更新了我的帖子:http://www.r-statistics.com/2011/04/how-to-upgrade-r-on-windows-7/

我希望它对将来的某人有所帮助, 塔尔

【讨论】:

  • 不幸的是,防病毒设置被锁定,因为我们在公司设置中
  • 对于在使用卡巴斯基时遇到此问题的用户,此站点显示了如何添加排除规则:support.kaspersky.com/11146
  • 谢谢!这是我的问题。我关闭了 mcaffee,重新安装了我的包,加载,然后重新打开它,它工作了!
  • @xiaodai 看看我的回答,了解防病毒公司政策的解决方法。
  • 嗨,Tal,我有一个不同的问题,非常感谢您的帮助。我的问题是我无法使用library("packageName")require("packageName") 加载任何R 包。我收到以下错误:Error: package or namespace load failed for ‘packageName’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]): namespace ‘tibble’ 1.3.0 is already loaded, but >= 1.3.1 is required
【解决方案3】:

如果您无法关闭防病毒软件,例如由于公司政策,我找到了一个解决方法。调试解压缩包功能,然后单步执行它可以让防病毒软件有足够的时间在不干扰的情况下完成其工作。使用这个命令:

debug(utils:::unpackPkgZip)
install.packages("packageName")

然后在安装过程中R开始调试时单步执行代码(通过多次按回车键)。

我找到了这个解决方案here

【讨论】:

    【解决方案4】:

    如果您可以直接从 CRAN 下载二进制文件。在 Windows 上,下载后它将是一个 zip 文件。现在手动将其解压缩到 R (.libPaths()) 的 ..library/ 文件夹中。它在某些软件包上对我有用。

    【讨论】:

    • 这样做有什么需要担心的吗?
    • @rrs 它不会安装依赖项,所以你必须确保自己处理好。
    【解决方案5】:

    我在安装 swirl 和 dplyr 时遇到了这个问题。我正在使用 Windows 64 位。

    警告:无法移动临时安装

    我所做的是我访问了 C: 驱动器上的临时文件,并打开了我的文件提取程序,然后我将 C: 驱动器中的临时文件中的文件提取到 C: 驱动器中的 R 程序文件中,通过手动复制它们。这对 dpylr 和 swirl 都有效。上火了!

    干杯,

    桃子

    【讨论】:

    • +1 这是我在 Windows 10 个人计算机上安装 swirl 的唯一解决方案。所有其他解决方案都不适合我。
    【解决方案6】:

    您不能使用 lib.loc 参数仅更新您个人库中的包(在用户中)吗? 应该没有办法让普通的、非增强的用户更改程序文件文件夹中的文件,所以你唯一能做的(如果你不想增强用户)就是让 R 不在那里更新包.

    一种解决方法是避免在程序文件文件夹中安装 R(这可能或多或少是一种 hack,而不仅仅是将库位置移出它,这取决于您的观点)。

    最后,如果 lib.loc 没有删减它,您可以查看 update.packages 的源代码并创建自己的自定义版本,该版本将始终避免程序文件中的公共库位置。

    【讨论】:

    • 谢谢尼克,但我希望在将 R 保存在程序文件下的同时解决这个问题......
    【解决方案7】:

    我刚遇到同样的问题,我发现的解决方案是你应该使用原始的 R 软件安装包(另外,你应该选择正确的镜像站点,其中一些被阻止)。起初我使用 Rstudio 安装软件包,我遇到了和你遇到的同样的问题。希望这会有所帮助。

    【讨论】:

      【解决方案8】:

      我已经多次遇到此错误。在我自己的情况下,这是因为我们的管理员希望我们使用远程虚拟磁盘(在 Windows 7 上)来存储我们的文件,并且一切都像鼓一样被紧紧锁定。我可以使用 R 包的唯一方法是在远程虚拟磁盘上的 lib 目录中。除了网络并不总是流畅和快速之外,这不会是一个问题。因此,当我需要一个包时,尤其是一个包含其他几个包的包(例如,MBESS)时,我要么必须多次执行 get.packages() 过程直到它最终完成,要么让它像这样快做起来很头疼兔子给我。我不能总是等待它。

      【讨论】:

        【解决方案9】:

        我刚刚进入库文件夹 (Windows XP) 并删除了所有 fileXXXX 文件夹。重新运行安装,它可以工作。

        【讨论】:

        • 这对我有用,与 rJava 有类似的问题。我在 R/library 中手动创建了一个名为 R/library/rJava 的文件夹,它运行良好。
        【解决方案10】:

        我遇到了同样的问题。由于问题似乎是防病毒软件阻止了下载文件的传输,因此我在 install.packages 中尝试了另一种下载方法,并且成功了。

        例如:

        install.packages("stringr", method = "curl")
        

        【讨论】:

          【解决方案11】:

          您必须进入 R 文件夹的属性并更改安全参数。您可以为所有用户启用写入和修改选项。

          【讨论】:

            【解决方案12】:

            错误:“无法移动临时安装”基本上是由于您系统上运行的任何防病毒软件引起的。 尝试将下载的文件从 Temp 文件夹解压到默认库路径中(您可以通过在 R 会话中运行 .libPaths() 来获取它)。

            【讨论】:

              【解决方案13】:

              我使用的是 MRAN,但我遇到了很多版本问题。尝试使用 tidyverse 和 ggplot2 并通过从 Microsoft 升级到最新版本解决了我所有的 R-Studio 版本问题。

              版本信息:

              Microsoft R Open 3.5.1
              The enhanced R distribution from Microsoft
              Default CRAN mirror snapshot taken on 2018-08-01.
              

              Download Microsoft R Open 3.5.1

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2018-03-17
                • 1970-01-01
                • 2016-11-28
                • 2017-06-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多