R and data.table on AWS



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

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

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

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

任何帮助,不胜感激。

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

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

这里的问题是 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

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

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

我有以下解决方法。

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现在可以工作。

最新更新