【问题标题】:R and data.table on AWSAWS 上的 R 和 data.table
【发布时间】:2018-07-12 14:24:46
【问题描述】:

这是我在尝试在 AWS EC2 实例 (Amazon Linux AMI) 上安装特定 R 库时遇到的一个非常奇怪的错误。由其他人发布的AWS forums here 中的链接实际上很好地突出了我的问题。

错误信息的主要/相关部分是:

data.table.h:6:12: fatal error: omp.h: No such file or directory
#include <omp.h> 

我做了一些研究(虽然我不确定),我认为这与服务器上是否有启用 OpenMP 的编译器有关。 GitHub 上的 data.table 安装页面本身对此进行了一些讨论 here,但我不确定如何在我的 EC2 实例上更新或修复此问题。

对此的任何帮助表示赞赏。

编辑 - 这是一个新问题,因为不到一个月前,我能够在以前的类似 EC2 实例上成功安装 data.table

编辑 2 - 我通过使用我以前的 EC2 实例解决了这个问题,该实例上已经安装了 data.table,并从中创建了一个自定义 AMI。通过在启动新实例时使用此自定义 AMI,它们已经安装了 data.table 库。如果我注意到 AWS 自行解决了这个问题,我会尽量记得回来更新这篇文章!

【问题讨论】:

标签: r amazon-web-services data.table


【解决方案1】:

由于某种原因,在~/.R/Makevars 中设置CC=gcc64 对我不起作用。 R 仍在使用默认的gcc 进行编译。

但是还有另一种选择。您可以直接编辑 R 在编译期间使用的 Makeconf 文件。如果您使用的是 Amazon Linux,则文件位置为 /usr/lib64/R/etc/Makeconf。找到文件后,技巧是一样的,就是将CC = gcc 更改为CC = gcc64。您可能还想通过运行sudo yum install gcc64 来确保安装了gcc64

【讨论】:

  • sudo sed -i 's/CC = gcc -m64/CC = gcc64 -m64/g' /usr/lib64/R/etc/Makeconf
【解决方案2】:

我有以下解决方法。

1) 联系ssh

2) 下载包源

wget https://cran.r-project.org/src/contrib/data.table_1.10.4-3.tar.gz

3) 安装包

R CMD INSTALL data.table_1.10.4-3.tar.gz

这会将包安装在本地包目录中,不一定是 RStudio 用户之一。

4) 在 R 和 RStudio 中使用.libPaths() 来确定包的存储位置。

5) 使用sudo cp -R SOURCE DEST将包复制到所需目录。

备注:这是一种变通方法而不是解决方案,因为您需要以这种方式手动安装每个包,即处理依赖关系可能很麻烦,但至少 data.table 现在可以工作。

【讨论】:

    【解决方案3】:

    这里的问题是 data.table 不能与默认的 gcc 编译器配合使用(gcc72-c++.x86_64 作为 R-devel.x86_64 的依赖项安装)。通过添加

    将 R 指向旧版本
    CC=gcc64
    

    ~/.R/Makevars。如果您从“干净”的 Amazon Linux AMI 开始,则此文件不存在,您只需键入

    mkdir ~/.R
    echo "CC=gcc64" >> ~/.R/Makevars
    

    【讨论】:

      猜你喜欢
      • 2012-03-06
      • 2016-04-20
      • 2016-08-01
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      相关资源
      最近更新 更多