【问题标题】:Error in R: (Package which is only available in source form, and may need compilation of C/C++/Fortran)R 中的错​​误:(仅以源代码形式提供的包,可能需要编译 C/C++/Fortran)
【发布时间】:2015-09-23 20:15:06
【问题描述】:

我正在尝试在 R-Studio 中安装 'yaml' 和 'stringi' 包,但它一直给我这些错误:

> install.packages("stringi")
Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘stringi’
These will not be installed

> install.packages('yaml')
Package which is only available in source form, and may need compilation of C/C++/Fortran: ‘yaml’
These will not be installed

我怎样才能正确安装这些?

【问题讨论】:

  • 您使用的是什么操作系统?您的机器上似乎没有编译器。
  • 哎哟!抱歉,我使用的是 Windows 7,R-Studio 版本 0.99.451,R i386 v.3.2.1。我如何获取/安装/连接到 R 编译器?
  • 你需要安装Rtools
  • 我使用的是 R 3.5 版本。我今天遇到同样的错误。你如何解决它?任何人? @wanax
  • @xkcvk2511 我今天在 3.5 中也遇到了同样的错误,但仅限于 data.table。其他软件包安装良好 - 你觉得怎么样?我已经尝试了不同的镜像,并且安装了 Rtools...

标签: r installation yaml stringi


【解决方案1】:

该错误是由于 R 无法在 CRAN 上找到软件包的二进制版本,而只能找到软件包的 source 版本,并且您的 Windows 安装无法编译它。通常这不会发生,但在这种情况下是由 CRAN 的一些镜像(临时)中断引起的。如果你输入:

> getOption('repos')
                                CRAN                            CRANextra 
           "http://cran.rstudio.com" "http://www.stats.ox.ac.uk/pub/RWin" 
attr(,"RStudio")
[1] TRUE

您将看到 R 默认使用 "http://cran.rstudio.com" 来查找要下载的包。如果您看到the cran mirrors web page,您可以在顶部看到"http://cran.rstudio.com" 实际上将您重定向到全球不同的服务器(我假设根据地理位置)。

当我遇到上述问题时,我通过手动将 repo 更改为提供的链接中的一个 url 来解决它。如果您收到上述错误,我建议您使用不同的国家(甚至大陆)。

如果上面的链接发生变化,我会在下面提供一些网址:

  1. 巴西http://nbcgib.uesc.br/mirrors/cran/
  2. 意大利http://cran.mirror.garr.it/mirrors/CRAN/
  3. 日本http://cran.ism.ac.jp/
  4. 南非http://r.adu.org.za/
  5. 美国https://cran.cnr.Berkeley.edu/

你需要运行install.packages函数如下:

install.packages('<package_name>', repo='http://nbcgib.uesc.br/mirrors/cran/')
#or any other url from the list or link

然后其中一个应该可以从备用镜像安装二进制文件。

【讨论】:

  • 完善这个作品;让我发疯,因为我以前安装软件包没有任何问题。我使用 Rstudio,所以我只需要更改默认值。
  • 非常感谢!立即工作
【解决方案2】:

您需要安装RTools 来构建这样的包(即源包而不是二进制文件)。安装 Rtools 后,再次尝试install.packages("ggplot2"),R 会提示您:

Do you want to attempt to install these from source?
y/n:

(见下图)

您需要回答y,它会尝试编译包以便安装。

【讨论】:

  • 您知道如何将yyes 设置为默认值吗?
【解决方案3】:

今天遇到这个问题,现在通过首先下载Windows二进制文件然后安装例如解决它。

install.packages("https://cran.r-project.org/bin/windows/contrib/3.3/stringi_1.1.1.zip", repos =NULL)

只需转到https://cran.r-project.org/,然后转到 R Binaries/Windows/contrib 并将 url 作为参数复制到 install.packages()

【讨论】:

  • 按照您的建议,我意识到该软件包不适用于我的旧 R 版本的二进制文件。一旦我升级它,问题就消失了。谢谢!
【解决方案4】:

从 zip 文件安装包 - 可从 r-project 网站下载。

在基本 R 中

  1. 转到包
  2. 从本地文件安装包。

在 RStudio 中

  1. 转到包
  2. 安装包
  3. 从包存档文件安装。

【讨论】:

    【解决方案5】:

    我在使用 过时版本的 R 时遇到了这个问题,因此没有可用的二进制文件。简单的解决方案是更新我的 R 版本。

    【讨论】:

      【解决方案6】:

      一切都对我有用,直到我发现我的电脑安装了旧版本的 R。卸载所有内容并安装最新的 R 版本有效!

      【讨论】:

        【解决方案7】:

        我不得不download the latest version of Rtools:

        进入下载文件夹,双击安装。

        关闭并重新打开任何 R 会话。

        现在包应该正常安装了。

        但是,如果您仍然遇到问题,请尝试从源代码安装软件包(使用 type="source"

        像这样:

        install.packages("dplyr", type="source")
        

        【讨论】:

          猜你喜欢
          • 2016-11-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-23
          相关资源
          最近更新 更多