Can*_*ice 10 r amazon-web-services data.table
这是一个非常奇怪的错误,我试图在AWS EC2实例(Amazon Linux AMI)上安装特定的R库.此处AWS论坛中的链接由其他人发布,实际上很好地突出了我的问题.
错误消息的主要/相关部分是:
data.table.h:6:12: fatal error: omp.h: No such file or directory
#include <omp.h>
Run Code Online (Sandbox Code Playgroud)
我做了一些研究(虽然我不确定),我认为这与服务器上是否有启用OpenMP的编译器有关.GitHub上的data.table安装页面在这里讨论了一下,但我不确定如何在我的EC2实例上更新或修复它.
对此有任何帮助表示赞赏.
编辑 - 这是一个新问题,因为我能够在不到一个月前在之前类似的EC2实例上成功安装data.table.
编辑2 - 我解决了这个问题,我先前已经安装了data.table,并从中创建了一个自定义AMI.通过在启动新实例时使用此自定义AMI,它们已经安装了data.table库.如果我发现AWS自己解决了这个问题,我会尽量记得回来更新这篇文章!
小智 8
这里的问题是data.table与默认的gcc编译器不兼容(gcc72-c ++.x86_64作为R-devel.x86_64的依赖项安装).通过添加将R指向旧版本
CC=gcc64
Run Code Online (Sandbox Code Playgroud)
在~/.R/Makevars
.如果您从"干净的"Amazon Linux AMI开始,此文件不存在,您只需键入即可
mkdir ~/.R
echo "CC=gcc64" >> ~/.R/Makevars
Run Code Online (Sandbox Code Playgroud)
由于某种原因CC=gcc64
,在中设置~/.R/Makevars
对我不起作用。R仍在使用default gcc
进行编译。
但是,还有另一种选择。您可以直接编辑Makeconf
R在编译过程中使用的文件。如果您使用的是Amazon Linux,则文件位置为/usr/lib64/R/etc/Makeconf
。找到文件后,技巧就一样了,那就是将更CC = gcc
改为CC = gcc64
。您可能还需要确保gcc64
通过运行进行安装sudo yum install gcc64
。