CentOS6.5下编译R源码并安装Spark R
?
不多說,直接上干貨!
?
?
為了使用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目錄下面。
?
總結
以上是生活随笔為你收集整理的CentOS6.5下编译R源码并安装Spark R的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS2015智能提示由英文改为中文
- 下一篇: Redmonk 发布 Java 框架流行