无法在ec2 spark集群上安装fOptions R软件包
问题描述:
我已经在ec2上使用spark-ec2脚本部署了一个spark集群。我试图在Rstudio上安装'fOptions'R软件包,但在install.packages()试图安装名为'gss'的依赖项时出现以下错误:/ usr/bin/ld:找不到-lRlapack 在/ usr /斌/劳工处:找不到-lRblas无法在ec2 spark集群上安装fOptions R软件包
Warning: Label 23057 at (1) defined but not used
gcc -m64 -std=gnu99 -I/usr/include/R -DNDEBUG -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 smolyak.c -o smolyak.o
smolyak.c: In function ‘eval’:
smolyak.c:181:10: warning: variable ‘dummy’ set but not used [-Wunused-but-set-variable]
smolyak.c: In function ‘calccoeff2’:
smolyak.c:381:10: warning: variable ‘dummy’ set but not used [-Wunused-but-set-variable]
smolyak.c: In function ‘fsum’:
smolyak.c:418:10: warning: variable ‘dummy’ set but not used [-Wunused-but-set-variable]
smolyak.c: At top level:
smolyak.c:378:8: warning: ‘calccoeff2’ defined but not used [-Wunused-function]
gcc -m64 -std=gnu99 -shared -L/usr/local/lib64 -o gss.so cdennewton.o cdennewton10.o dcoef.o dcore.o dcrdr.o ddeev.o deval.o dgold.o dmcdc.o dmudr.o dmudr0.o dmudr1.o dnewton.o dnewton10.o dprmut.o dqrslm.o drkl.o dset.o dsidr.o dsidr0.o dsms.o dstup.o dsytr.o dtrev.o gaussq.o hzdaux.o hzdnewton.o hzdnewton10.o llrmnewton.o reg.o smolyak.o -L/usr/lib64/R/lib -lRlapack -L/usr/lib64/R/lib -lRblas -lgfortran -lm -lquadmath -lgfortran -lm -lquadmath -L/usr/lib64/R/lib -lR
/usr/bin/ld: cannot find -lRlapack
/usr/bin/ld: cannot find -lRblas
collect2: ld returned 1 exit status
make: *** [gss.so] Error 1
ERROR: compilation failed for package ‘gss’
* removing ‘/home/rstudio/R/x86_64-redhat-linux-gnu-library/3.2/gss’
Warning in install.packages :
installation of package ‘gss’ had non-zero exit status
The downloaded source packages are in
‘/tmp/RtmpGROBAw/downloaded_packages’
还有更多的警告了。我也试过yum安装liblpack3 libperl-dev,但我得到另一个错误 - 没有包libperl-dev可用,其他包也是如此。
其他软件包如ggplot2已成功安装,一些示例代码在Spark集群上运行良好。
是否有任何解决此错误或任何解决方法来安装fOptions及其依赖关系?
答
这是一个错误的安装R本身。
它认为它应该有内部LAPACK和BLAS(因为Rlapack和Rblas中的'R'),然后会自动成为相同R安装的一部分,但它们缺失。在'正常'的Unix系统上,你有
[email protected]:~$ R CMD config LAPACK_LIBS
-llapack
[email protected]:~$ R CMD config BLAS_LIBS
-lblas
[email protected]:~$
并且使用系统版本的LAPACK和BLAS。如果和当你配置R使用自己的,它显示(如在我的R-devel内部)
[email protected]:~$ RD CMD config LAPACK_LIBS
-L/usr/local/lib/R-devel/lib/R/lib -lRlapack
[email protected]:~$ RD CMD config BLAS_LIBS
-L/usr/local/lib/R-devel/lib/R/lib -lRblas
[email protected]:~$
但也给出了位置。所以你需要用你在那里的R的RedHat版本进行分类。