尝试理解并解决:“install.packages 中的错误:软件包‘...’未安装,因为它不是为 UCRT 构建的”

问题描述 投票:0回答:1

这是我的第一篇文章 - 到目前为止,我仅通过浏览就从社区学到了很多东西,我对此表示感谢,谢谢。然而,对于这个我完全陷入困境。我对 R 和编程还是新手,虽然我在分析和统计方面非常成功,但我缺乏计算机科学知识。

我的情况很特殊:我正在尝试在一台有很多限制的公司笔记本电脑上设置 R 和 R Studio,其中之一是限制互联网访问。我需要开始安装软件包,但由于互联网流量受到限制,我无法以通常的方式进行安装。为此,我已在另一台计算机上下载了所需的所有内容,并打算将其本地安装在受限制的笔记本电脑上。使用 dplyr 及其依赖项(目前只有两个)作为示例:


    #download packages on internet-enabled machine
    packages <- c("dplyr", "generics", "glue")
    files <- download.packages(pkgs = packages, destdir = getwd(), type = "win.binary")
    files[,2]
    [1] "dplyr_1.0.9.zip"    "generics_0.1.3.zip" "glue_1.6.2.zip"  
      
    #transfer files to restricted laptop and install manually
    install.packages(files[,2], repos = NULL, type = "win.binary")

当我尝试安装第一个和第三个包时出现错误(第二个安装正常):


    package ‘dplyr’ successfully unpacked and MD5 sums checked
    Error in install.packages : package ‘dplyr’ not installed because it is not built for UCRT

这些是我的 R 规格:

$platform
[1] "x86_64-w64-mingw32"

$arch
[1] "x86_64"

$os
[1] "mingw32"

$crt
[1] "ucrt"

$system
[1] "x86_64, mingw32"

$status
[1] ""

$major
[1] "4"

$minor
[1] "2.1"

$year
[1] "2022"

$month
[1] "06"

$day
[1] "23"

$`svn rev`
[1] "82513"

$language
[1] "R"

$version.string
[1] "R version 4.2.1 (2022-06-23 ucrt)"

$nickname
[1] "Funny-Looking Kid"

我知道我的R版本是URCT,即通用C运行时(CRT),但我什至不知道这在实践中意味着什么。我知道旧版本的 R 不是 URCT,安装它们可以解决问题,正如其他帖子中所建议的,例如

ROracle - 无法安装,因为“不是为 UCRT 构建”

install.packages 中出现错误:未安装软件包“RGtk2”,因为它不是为 UCRT 构建的

未安装软件包“rsgcc”,因为它不是为 UCRT 构建的

但是,我使用的R版本是我公司唯一认可的版本,我无法安装其他版本。

在这个版本的R中安装软件包似乎是不合理的,所以我肯定错过了一些重要的事情,因此寻求更多知识渊博的人的帮助。

  • 如何在运行 R 版本 4.2.1 URCT 的互联网受限笔记本电脑上手动安装软件包?
  • 有人可以简要解释一下 URCT 业务是什么以及为什么它会导致像安装基本软件包这样的基本任务出现问题吗?

非常感谢!

米哈乌

r install.packages
1个回答
2
投票

希望OP现在已经解决了这个问题。我能够从此链接找到一个简单且通用的解决方案: https://cran.r-project.org/bin/windows/base/howto-R-devel.html

我是这样看待问题的:你的 R 使用 UCRT,但你下载的二进制文件是为非 UCRT 编写的。修复方法是“从源代码”安装以强制 R 构建自己的二进制文件。这些二进制文件将从构建它们的 R 版本继承 UCRT 兼容性。

建议的解决方案如下:

  1. 指定从源安装,强制您的 UCRT 系统构建适当的二进制文件:
    install.packages("dplyr", type="source")
  2. 使用 devtools 从 GitHub 安装/构建(这是我在工作中由于网络限制而使用的):
    devtools::install_github("cran/dplyr")

将此推断到上面的代码片段,我建议尝试以下操作:

#download packages on internet-enabled machine
packages <- c("dplyr", "generics", "glue")
files <- download.packages(pkgs = packages, destdir = getwd(), type = "source") #Changed type to source
files[,2]
[1] "dplyr_1.0.9.tar.gz"    "generics_0.1.3.tar.gz" "glue_1.6.2.tar.gz"  
  
#transfer files to restricted laptop and install manually
install.packages(files[,2], repos = NULL, type = "source") #changed type to source
© www.soinside.com 2019 - 2024. All rights reserved.