【问题标题】:R package data.table fails to install/compile on system with R 3.5.1R package data.table 无法在 R 3.5.1 系统上安装/编译
【发布时间】:2019-06-28 11:19:44
【问题描述】:

我正在尝试重新安装 data.table:

install.packages("data.table")

我收到以下编译错误:

forder.c: In function ‘range_str’:
forder.c:296: error: expected end of line before ‘update’
make: *** [forder.o] Error 1
ERROR: compilation failed for package ‘data.table’

我从 cran 得到的包是:data.table_1.12.0.tar.gz 与 data.table 1.10 的问题不同,这应该是适用于 3.5 的版本

这个系统是 RHEL 6.9 + 我也已经通过 yum 更新了 gcc。

R 版本也从 yum 更新:R-core-3.5.1-1.el6.x86_64R-core-devel-3.5.1-1.el6.x86_64

我在 google 上找到的所有内容都与 Rtools (Windows) 或旧版本 1.10 有关,这似乎是别的东西。

【问题讨论】:

  • 你能发布完整的错误信息吗?
  • 这是完整的错误信息,上面只是成功的几个编译步骤。

标签: r installation package


【解决方案1】:

错误消息中提到的行是:

#pragma omp atomic update

这是 4.7 版之前的 GCC 和 RedHat 6.9 中显然不可用的功能,目前我从标准 repos 获得的最高版本是 4.4.7。

意味着我需要一个更新的编译器,它可以处理这个 openmp 功能。

【讨论】:

    【解决方案2】:

    我在使用 R 3.5.0 安装 data.table 时遇到了同样的错误

    在 CentOS 6.10(具有 gcc 和 g++ 版本 4.4.7)上,这是我能够安装 data.table 的方式:

    1. yum install devtoolset-6
    2. scl enable devtoolset-6 bash
      现在如果你这样做:`which gcc` -v,你应该会看到更高的 gcc 版本
    3. R
      启动 R 3.5.0
    4. install.packages("data.table")
      现在我可以安装 data.table

    【讨论】:

    • 我拥有相同版本的所有内容,但这对我不起作用。我的 gcc 版本保持不变。
    【解决方案3】:

    您可以在 EL6 上安装旧版本的 data.table。 1.11.4 作品;我不确定哪个(如果有的话)较新的版本。

    require(devtools)
    install_version("data.table", version = "1.11.4")
    

    有关安装旧版本软件包的更多信息:https://support.rstudio.com/hc/en-us/articles/219949047-Installing-older-versions-of-packages

    【讨论】:

    • 1.11.8 版适用于我(但不是 1.12.0)使用 gcc 4.4.7
    猜你喜欢
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    相关资源
    最近更新 更多