不仅仅编译R语言本身会非常的麻烦,实际上还有些R包为了提高运行速度将一些功能封装到C/C++中,随后在安装的时候会进行编译。 编译通过则万事大吉,如果不通关就是一番折腾。比如说我最近在服务器上安装 并不是所有的warning都可以忽视,比如说如下这种就不行。因为他说DESeq2的编译结果是“非零返回”,也就是失败了。而失败的原因则是前面这个包都失败了。 source('http:///biocLite.R')biocLite('DESeq2') 那我们逐个解决,使用 上面的报错信息 # xml2wget -4 ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gztar xf libxml2-git-snapshot.tar.gzcd libxml2-2.9.7/./configure --prefix=$HOME/opt/sysoft/libxml2-2.9.7 CFLAGS=-I$HOME/opt/anaconda2/include/python2.7/make && make install# iconvwget -4 https://ftp./pub/gnu/libiconv/libiconv-1.15.tar.gztar xf libiconv-1.15.tar.gzcd libiconv-1.15./configure --prefix=$HOME/opt/sysoft/libiconv-1.15make && make install
安装完之后,还是无法直接使用R安装,因为R不知道我们把这些软件装在了哪里。解决方案就是在家目录下新建一个文件夹 Makevars的语法和Makefile一致,在编译的时候里面的变量会成为编译工具的参数。
由于我的服务器管理员安装的工具不多,所以我自己安装了很多工具,也就有很多的路径要添加。 CXXSTD = -std=gnu11# dynamic link libraryLIBGCC = -L$(HOME)/opt/sysoft/gcc-4.9.0/lib64 -Wl,-R$(HOME)/opt/sysoft/gcc-4.9.0/lib64LIBEXPAT = -L$(HOME)/opt/sysoft/expat-2.2.5/lib -Wl,-R$(HOME)/opt/sysoft/expat-2.2.5/libOPENMPI = -L$(HOME)/opt/sysoft/openmpi-3.0.0/lib -Wl,-R$(HOME)/opt/sysoft/openmpi-3.0.0/libBZIP2 = -L$(HOME)/opt/sysoft/bzip2-1.06/lib -Wl,-R$(HOME)/opt/sysoft/bzip2-1.06/libXZ = -L$(HOME)/opt/sysoft/xz-5.2.3/lib -Wl,-R$(HOME)/opt/sysoft/xz-5.2.3/libZLIB = -L$(HOME)/opt/sysoft/zlib-1.2.11/lib -Wl,-R$(HOME)/opt/sysoft/zlib-1.2.11/libCURL = -L$(HOME)/opt/sysoft/curl-7.56.1/lib -Wl,-R$(HOME)/opt/sysoft/curl-7.56.1/lib/ICONV = -L$(HOME)/opt/sysoft/libiconv-1.15/lib -Wl,-R$(HOME)/opt/sysoft/libiconv-1.15/libXML2 = -L$(HOME)/opt/sysoft/libxml2-2.9.7/lib -Wl,-R$(HOME)/opt/sysoft/libxml2-2.9.7/libLDFLAGS := $(LIBGCC) $(LIBEXPAT) $(BZIP2) $(XZ) $(ZLIB) $(CURL) $(ICONV) $(XML2) 之后在编译XML时候,出了一个小问题,后来发现是因为编译XML需要 解决依赖包之后, Windows和MacOS都有预编译的二进制包,Linux要怎么设置? 参考资料:
|
|