红联Linux门户
Linux帮助

CentOS6.5下编译R源码并安装Spark R

发布时间:2017-06-09 09:24:43来源:cnblogs.com/zlslch作者:好记性不如烂笔头!
为了使用SparkR,决定要在Spark所在的Linux上装上R,结果血泪篇了。主要原因是公司内部的虚机,无法连外网,所以网上很多的直接rpm或者yum的方法都没用,需要自己编译R的源码,中间因为Redhat Enterprise没有给装好gcc,又为了装gcc折腾了半天,终于现在通过了configure,可以make了,赶紧记录下来。
目前看这是第一篇完整的R的安装文章吧。随着spark 1.4之后SparkR的流行,估计会有不少人需要这个东西。而且企业内部的机器一般都不会让你连外网的,那么自己编译就是必须的了。
 
先是去R的官网,CRAN里面下一个R的源码包,R-3.3.2.tar.gz。然后解压缩到本机上。
 
R的编译,文档写的很简单就是三个命令:
./configure
make
make install
 
可是configure是个大坑,第一个错是没找到gcc和c++编译器,只好先搞定gcc的安装,需要去找到RH EL6的iso包,把其中的Packages目录搞出来,传到虚机上。
 
然后按照这个步骤安装。
rpm -ihv kernel-headers-2.6.32-279.el6.i686.rpm
rpm -ihv glibc-headers-2.12-1.80.el6.i686.rpm
rpm -ihv glibc-devel-2.12-1.80.el6.i686.rpm
rpm -ihv mpfr-2.4.1-6.el6.i686.rpm
rpm -ihv ppl-0.10.2-11.el6.i686.rpm
rpm -ihv cpp-4.4.6-4.el6.i686.rpm
rpm -ihv cloog-ppl-0.15.7-1.2.el6.i686.rpm
rpm -ihv gcc-4.4.6-4.el6.i686.rpm
 
注意这里用的都是32位的包,我自己安装是tab出的x86_64的rpm包,别搞错了。
 
网上的这个步骤是没有装c++的,而且再次运行configure,又报错说f77没装,看来一下才知道这个是forton的编译器。其实Packages里面都有相应的rpm包,都装上,中间会提示某些依赖没有,再在Packages目录里面找,都装上。
rpm -ivh libgfortran-4.4.7-11.el6.x86_64.rpm
rpm -ivh gcc-gfortran-4.4.7-11.el6.x86_64.rpm
rpm -ivh libstdc++-devel-4.4.7-11.el6.x86_64.rpm
rpm -ivh gcc-c++-4.4.7-11.el6.x86_64.rpm
 
最后configure还是会报两个warning,一个是with-x=yes,一个是with-readline=yes。这两个是生产帮助文档的。不会用到。所以把这两个参数设定成no就ok了。 
 
为了配合RStudio的安装,在configure的时候还要加上 --enable-R-shlib=yes 来产生 libR.so的包。
./configure --with-x=no --with-readline=no --enable-R-shlib=yes
 
终于configure通过了,然后就是漫长的make过程。然后就是make install,搞定!
R的命令就在源码目录的bin目录下面。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/31354.html