安装R包。包含目录为空。开发标题

安装R包。包含目录为空。开发标题,r,unix,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

我目前正在尝试运行一些最初在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的早期版本。我曾尝试从其他repo(biocLite)获取当前版本的软件包。但是,所有安装尝试都会产生相同的故障。更详细地说,在我试图运行此代码的机器上,我不是超级用户。我可以请超级用户帮我一些小忙(那些不会影响机器其他用户的忙)。我已经能够安装其他软件包刚刚好;虽然正如我早些时候所说,如果我有一个简单的问题,我会很高兴。这里有一些失败

* 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’

出现此错误是因为我登录的特定计算机没有开发标头。我的系统管理员指示我登录到另一台这样做的机器。奇怪的是,R允许我安装一些没有头的包。如果您在尝试安装R软件包时间歇性收到此投诉,则可能与Joshua Ulrich在评论中提到的开发头有关。

此错误源于gcc无法在默认包含路径(/usr/local/include)上找到“R.h”等

在根模式下,可以通过执行以下命令轻松解决此问题:

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,指定include目录的路径(可以在其中找到R.h):

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

> install.packages("Rcpp")

你需要R头才能针对它们进行编译(“需要安装R-devel.rpm或类似文件”)。@JoshuaUlrich我将如何获取这些头以及将它们放置在何处?这取决于你的操作系统及其设置方式。请在其上安装R的人也安装开发标头。首先为什么要安装源代码?你真的有CRAN没有二进制文件的操作系统吗?@CarlWitthoft安装源代码只是我尝试安装上述软件包的方法之一。所有尝试均以与上述类似的方式失败。我并不想对安装软件包过于挑剔——我只是想找到一些可行的方法。我相信我想要的包可能与R有一些兼容性问题,因为R的早期版本能够加载提到的包。
> install.packages("Rcpp")