导语
GUIDE ╲
你是否有过这样的困扰:想使用一个R包,但由于没有root权限而感到束手束脚? 别慌……你只需要用自己的账户重新安装一款R软件,进入到自己目录下的R就可以自由安装R包啦!
背景介绍
非Root权限的账户在linux上安装R时,会遇到各种各样的问题,小编作为资深“踩坑”专家,今天就好好为大家“排排坑”!
配置环境所需文件
在配置环境时,你可能用到的文件及下载地址有(可以直接用wget 下载地址获取):
环境配置
01
安装R语言(以3.6.2 version为例)
首先将R-3.6.2.tar.gz下载到目录/your/path下,执行:
代码语言:javascript复制cd /your/path/
wget https://cran.r-project.org/src/base/R-3/R-3.6.2.tar.gz
tar -xzvf R-3.6.2.tar.gz
cd /your/path/R-3.6.2
./configure --prefix=/your/path/R --enable-R-shlib --with-readline=yes --with-libpng=yes --with-blas
make -j3
make install
若这步运行成功,恭喜你!可以去庆祝了!
但往往实施起来不那么顺利,可能会遇到各种各样的问题,请带着你遇到的问题,在下面找解决方案吧……
02
问题盘点
1).若出现这样的报错:
代码语言:javascript复制configure: error: "liblzma library and headers are required"
解决方式:
代码语言:javascript复制wget http://tukaani.org/xz/xz-5.2.3.tar.gz
tar -xzvf xz-5.2.3.tar.gz
./configure --prefix=/your/path/xz-5.2.3
make -j3
make install
解决完毕后,请执行01过程。
2).若出现这样的报错:
代码语言:javascript复制checking whether PCRE support suffices... configure: error: pcre >= 8.20 library and headers are required
解决方式:
代码语言:javascript复制wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
tar -zxvf pcre-8.42.tar.gz
cd pcre-8.42
./configure --enable-utf8 --prefix=/your/path/pcre-8.42 # 一定要设置enable-utf8;
make -j3
make install
解决完毕后,请执行01过程。
3).若出现这样的报错:
代码语言:javascript复制configure: error: libcurl >= 7.22.0 library and headers are required with support for https
解决方式:
代码语言:javascript复制wget https://curl.haxx.se/download/curl-7.61.0.tar.gz
tar -zxvf curl-7.61.0.tar.gz
cd curl-7.61.0/
./configure --prefix=/your/path/curl-7.61.0
make
make install
解决完毕后,请执行01过程。
4).若出现这样的报错:
代码语言:javascript复制checking whether bzip2 support suffices... configure: error: bzip2 library and headers are required
解决方式:
代码语言:javascript复制tar -xvzf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make -f Makefile-libbz2_so
#此时,需要修改Makefile文件
#将CC=gcc 改为 CC=gcc -fPIC
make clean
make install PREFIX=/your/path/bzip2-1.0.6
解决完毕后,请执行01过程。
5).若出现这样的报错:
代码语言:javascript复制C 11 standard requested but CXX11 is not defined
解决方式:
代码语言:javascript复制cd /your/path/R-3.6.0/lib64/R/etc/
#修改Makeconf文件参数,如下:
#CXX11 = g
#CXX11FLAGS = -O2 -g $(LTO)
#CXX11PICFLAGS = -fPIC
#CXX11STD =
解决完毕后,请执行01过程。
03
按照02遇到的问题 配置好环境后,需要再次执行01过程
当然,再次执行01步骤时可不是照搬,需要做一些修改:
代码语言:javascript复制cd /your/path/R-3.6.2
#切记要将刚刚改动的软件lib和include路径给出来,用参数LDFLAGS传递,以bzip2,xz为例
./configure --prefix=/your/path/R --enable-R-shlib --with-readline=yes --with-libpng=yes --with-blas LDFLAGS="-L /your/path/bzip2-1.0.6/lib -L /your/path/xz-5.2.2/lib -L /your/path/bzip2-1.0.6/include -L /your/path/xz-5.2.2/include"
make -j3
#此时手动修改Makeconf文件,在LDFLAGS这里加上-Wl,-rpath后面跟这两个库的路径,
#仍然以bzip2,xz为例
#LDFLAGS = -L /your/path/bzip2-1.0.6/lib -L /your/path/xz-5.2.2/lib -Wl,-rpath=/your/path/bzip2-1.0.6/lib -Wl,-rpath=/your/path/xz-5.2.2/lib
make instal
R语言安装成功后,就可以进入到自己路径下的R,去尽情安装你喜欢的R包啦。
安装R包命令1:
代码语言:javascript复制if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("要安装的包")
安装R包命令2:
代码语言:javascript复制R CMD INSTALL /.../mypackage.tar.gz --library=/your/lib/path
小编总结
很多时候,我们会对一些精美的R包动心,但受限于没有root权限,无法安装使用。
但get了防坑指南的你 就不同了,尽情在你喜欢的R包中自由飞翔吧!