r - 安装 R 包。包含目录为空。开发 header

标签 r unix

我目前正在尝试运行一些最初在 2.11.0 下运行的 R 代码。我使用的 R 版本 2.14.1 无法运行代码。我不熟悉 R 及其向后兼容性。 (据我所知,我的问题可能与版本无关;我会很高兴得知这是我做错的事情。)其余的代码是无关紧要的;即使我自己运行,我的安装也会失败。

#these fail
install.packages("gtools",repos="http://cran.r-project.org")
install.packages("minet", repos="http://cran.r-project.org")
#these work
install.packages("psych", repos="http://cran.r-project.org")
install.packages("qvalue",repos="http://cran.r-project.org")
install.packages("R2HTML",repos="http://cran.r-project.org")

除了上面列出的方法之外,我还尝试了其他安装方法。我尝试过安装和编译早期版本的gtools和minet。我尝试从其他存储库(biocLite)获取该包的当前版本。然而,所有安装尝试都会产生相同的失败。对于更多背景知识,我不是我尝试运行此代码的计算机上的 super 用户。我可以向 super 用户请求一些小恩惠(不影响机器的其他用户的恩惠)。我已经能够很好地安装其他软件包;不过正如我之前所说,如果我有一个简单的问题,我会很高兴。以下是一些失败的例子。

* installing *source* package ‘gtools’ ...
** libs
Warning: R include directory is empty -- perhaps need to install R-devel.rpm or similar
gcc -m64 -std=gnu99 -I/usr/include/R  -I/usr/local/include    -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c setTCPNoDelay.c -o setTCPNoDelay.o
setTCPNoDelay.c:1:15: error: R.h: No such file or directory
setTCPNoDelay.c:2:24: error: Rinternals.h: No such file or directory
setTCPNoDelay.c: In function ‘checkStatus’:
setTCPNoDelay.c:66: warning: implicit declaration of function ‘strncpy’
setTCPNoDelay.c:66: warning: incompatible implicit declaration of built-in function ‘strncpy’
setTCPNoDelay.c:72: warning: implicit declaration of function ‘strerror’
setTCPNoDelay.c:72: warning: passing argument 2 of ‘strncpy’ makes pointer from integer without a cast
make: *** [setTCPNoDelay.o] Error 1
ERROR: compilation failed for package ‘gtools’

最佳答案

此错误来自于 gcc 在默认包含路径(/usr/local/include)等上找不到“R.h”的事实

在root模式下,执行以下命令即可轻松解决:

sudo apt-get install r-base r-base-dev

在用户模式下,可以通过下载并编译自己的代码副本来解决:

wget "https://cran.r-project.org/src/base/R-3/R-3.2.2.tar.gz"
tar xvfz R-3.2.2.tar.gz
cd R-3.2.2
./configure --prefix=/SOME_LOCAL_DIR
make; make install

现在启动 R,指定包含目录的路径(可以在其中找到 R.h):

export CPATH=/LOCAL_PATH/R-3.2.2/include/
export C_INCLUDE_PATH=/LOCAL_PATH/R-3.2.2/include/
export CPLUS_INCLUDE_PATH=/LOCAL_PATH/R-3.2.2/include/
export GCC_INCLUDE_DIR=/LOCAL_PATH/R-3.2.2/include/
./bin/R

现在 install.packages() 应该可以正常工作

> install.packages("Rcpp")

关于r - 安装 R 包。包含目录为空。开发 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9950437/

相关文章:

r - 亚马逊产品 API 与 R

r - 在 R : NSE programing error in the tidyverse 中的函数中创建和使用新变量

r - 如何在 purrr 中安全地提取结果?

python - 连接几个文件删除标题行

c - 使用 unix 系统调用在 C 程序中实现类似 shell 的功能

java - 根据 'number of pages' 标准拆分文本文件

r - 绘制 R 地区粮农组织捕鱼区 map

r - 围绕栅格单元绘制轮廓

linux - 如何在脚本中使用循环读取目录结构末尾的完整路径

c - 保存指针的内存地址