在使用R时,很多人都是在登陆节点上装R包,但R很占内存,直接在登陆节点跑复杂程序,管理员该找你喝茶了。但是投递到计算节点又跑不了,真是头大。原因是计算节点的R又没装你要用的R包。有人会说,那在每个计算节点上装一遍不就行了,计算节点如果有20个,一个一个装不是啥大事,可又不止这一个包,来10个20个包,谁受得了。【所以要自己把R装在一个登陆节点和计算节点都可以访问到的地方,这样就可以了。大多数人都没有root权限,怎么装,看下面。】
R官网下载R,放在你能找到的地方。我下载的是R-3.5.3
第一步:tar -xzf R-3.5.3.tar.gz #解压
cd R-3.5.3 #打开
./configure --prefix=/home/bin/R #我是放在我的home/bin路径下的,这个可以自己放在喜欢的位置
第二步:一般 ./configure都会报错,此步主要是把这些错误都解决了
【报错1】configure: error: zlib library and headers are required
解决:自己百度下载zlib
tar -xzf zlib-1.2.11.tar.gz #可能会有最新版
cd zlib-1.2.11
./configure --prefix=/home/bin/zlib-1.2.11
make
make install
【继续configure R】 ./configure --prefix=/home/bin/R --enable-R-shlib LDFLAGS="-L/$HOME/Programme/zlib-1.2.11/lib" CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include"
【报错2】configure: error: bzip2 library and headers are required
解决:自己百度下载bzip2(官网下不下来,可能是自己chun,就在百度某页面随便下了一个)
tar -xzf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make
make install PREFIX=/home/bin/bzip2-1.0.6
make -f Makefile-libbz2_so
最后这步会有问题,网上说这么解决,一开始没解决,试了无数遍后奇迹般解决的。如果你们遇到也可以试试。多试几遍。
第一:设置环境变量:
vi ~/.bashrc #添加下面的代码
export PATH=/home/bin/bzip2-1.0.6/bin:$PATH
export LD_LIBRARY_PATH=/home/bin/bzip2-1.0.6/lib:$LD_LIBRARY_PATH
export CFLAGS="-fPIC -I/home/bin/bzip2-1.0.6/include"
export LDFLAGS="-fPIC -L/home/bin/bzip2-1.0.6/lib"
:wq
source ~/.bashrc
第二:指定-fPIC编译:重新编译步骤:
cd bzip2-1.0.6
make CC='gcc -fPIC'
make install PREFIX=/home/bin/bzip2-1.0.6
make -f Makefile-libbz2_so //建立共享library,不会报错说明正确
【继续configure R】 ./configure --prefix=/home/bin/R --enable-R-shlib LDFLAGS="-L/home/bin/zlib-1.2.11/lib -L/home/bin/bzip2-1.0.6/lib" CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/home/bin/bzip2-1.0.6/include"
【报错3】configure: error: "liblzma library and headers are required"
解决:自己百度下载 xz-5.2.4.tar.gz
tar -xzf xz-5.2.4.tar.gz
cd xz-5.2.4
./configure --prefix=/home/bin/xz-5.2.4
make
make install
【继续configure R】 ./configure --prefix=/home/bin/R --enable-R-shlib LDFLAGS="-L/home/bin/zlib-1.2.11/lib -L/home/bin/bzip2-1.0.6/lib -L/home/bin/xz-5.2.4/lib" CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/home/bin/bzip2-1.0.6/include -I/home/bin/xz-5.2.4/include"
【报错4】configure: error: pcre >= 8.20 library and headers are required
解决:自己百度下载 pcre-8.43.tar.gz (千万不要错下载pcre2- 的版本)
tar -xzf pcre-8.43.tar.gz
cd pcre-8.43
./configure --prefix=/home/bin/pcre-8.43
make
make install
【继续configure R】 ./configure --prefix=/home/bin/R --enable-R-shlib LDFLAGS="-L/home/bin/zlib-1.2.11/lib -L/home/bin/bzip2-1.0.6/lib -L/home/bin/xz-5.2.4/lib -L/home/bin/pcre-8.43/lib" CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/home/bin/bzip2-1.0.6/include -I/home/bin/xz-5.2.4/include -I/home/bin/pcre-8.43/include"
【报错5】configure: error: libcurl >= 7.22.0 library and headers are required with support for https
解决:自己百度下载curl-7.64.0.tar.gz
tar -xzf curl-7.64.0.tar.gz
cd curl-7.64.0
./configure --prefix=/home/bin/curl-7.64.0
make
make install
【继续configure R】 ./configure --prefix=/home/bin/R --enable-R-shlib LDFLAGS="-L/home/bin/zlib-1.2.11/lib -L/home/bin/bzip2-1.0.6/lib -L/home/bin/xz-5.2.4/lib -L/home/bin/pcre-8.43/lib -L/home/bin/curl-7.64.0/lib" CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/home/bin/bzip2-1.0.6/include -I/home/bin/xz-5.2.4/include -I/home/bin/pcre-8.43/include -I/home/bin/curl-7.64.0/include"
这样configure就不会有错啦
第三步:make
【如果没有报错】make install 就装好了
【如果有报错】
报错1:报错内容包含libbz2.a,重复第二步的报错2解决方案,直到没有报错才可以,要不然会一直报错,无法make。
报错2:报错内容包含lzma、pcre,需要修改configue 内容,加-Wl,rpath
./configure --prefix=/home/bin/R --enable-R-shlib LDFLAGS="-L/home/bin/zlib-1.2.11/lib -L/home/bin/bzip2-1.0.6/lib -L/home/bin/xz-5.2.4/lib -L/home/bin/pcre-8.43/lib -L/home/bin/curl-7.64.0/lib -Wl,rpath=/home/bin/pcre-8.43/lib -Wl,rpath=/home/bin/xz-5.2.4/lib" CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/home/bin/bzip2-1.0.6/include -I/home/bin/xz-5.2.4/include -I/home/bin/pcre-8.43/include -I/home/bin/curl-7.64.0/include"
接着make, make install
第四步:待所有的安装都成功后,把R 的路径写在bashrc里就可以了
参考链接:http://blog.sina.com.cn/s/blog_6aaea1760102x5ka.html
https://www.jianshu.com/p/edb234eed915