非Root权限-如何在linux上安装R语言?

Posted 作图丫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非Root权限-如何在linux上安装R语言?相关的知识,希望对你有一定的参考价值。

导语

GUIDE 

非Root权限-如何在linux上安装R语言?

你是否有过这样的困扰:想使用一个R包,但由于没有root权限而感到束手束脚? 别慌……你只需要用自己的账户重新安装一款R软件,进入到自己目录下的R就可以自由安装R包啦!

非Root权限-如何在linux上安装R语言?

非Root权限-如何在linux上安装R语言?
非Root权限-如何在linux上安装R语言?
背景介绍




非Root权限的账户在linux上安装R时,会遇到各种各样的问题,小编作为资深“踩坑”专家,今天就好好为大家“排排坑”!



非Root权限-如何在linux上安装R语言?
非Root权限-如何在linux上安装R语言?
配置环境所需文件




在配置环境时,你可能用到的文件及下载地址有(可以直接用wget+下载地址获取):


名称 版本 下载地址
1 R 3.5+版本均可 https://cran.r-project.org/src/base/R-3/R-3.6.2.tar.gz
2 bzip2 >=1.0.6  https://sourceforge.net/projects/bzip2/files/latest/download
3 curl >=7.22.0 https://curl.haxx.se/download/curl-7.61.0.tar.gzYes
4 PCRE 

>=8.20

&

<10

https://nchc.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gzYes
5 xz-lzma >= 5.0.3 http://tukaani.org/xz/xz-5.2.3.tar.gz
6 zlib >= 1.2.5 http://zlib.net/zlib-1.2.11.tar.gz



非Root权限-如何在linux上安装R语言?
非Root权限-如何在linux上安装R语言?
环境配置




01
安装R语言(以3.6.2 version为例)

首先将R-3.6.2.tar.gz下载到目录/your/path下,执行:
cd /your/path/wget https://cran.r-project.org/src/base/R-3/R-3.6.2.tar.gztar -xzvf R-3.6.2.tar.gzcd /your/path/R-3.6.2./configure --prefix=/your/path/R  --enable-R-shlib --with-readline=yes --with-libpng=yes --with-blas make -j3make install

若这步运行成功,恭喜你!可以去庆祝了!

但往往实施起来不那么顺利,可能会遇到各种各样的问题, 请带着你遇到的问题,在下面找解决方案吧……

02
问题盘点
1).若出现这样的报错:
configure: error: "liblzma library and headers are required"
解决方式:
wget http://tukaani.org/xz/xz-5.2.3.tar.gztar -xzvf xz-5.2.3.tar.gz./configure --prefix=/your/path/xz-5.2.3make -j3make install
解决完毕后,请执行 01过程。

2).若出现这样的报错:
checking whether PCRE support suffices... configure: error: pcre >= 8.20 library and headers are required
解决方式:
wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gztar -zxvf pcre-8.42.tar.gzcd pcre-8.42./configure --enable-utf8 --prefix=/your/path/pcre-8.42 # 一定要设置enable-utf8;make -j3make install
解决完毕后,请执行 01 过程。

3).若出现这样的报错:
configure: error: libcurl >= 7.22.0 library and headers are required with support for https
解决方式:
wget https://curl.haxx.se/download/curl-7.61.0.tar.gztar -zxvf curl-7.61.0.tar.gzcd curl-7.61.0/./configure --prefix=/your/path/curl-7.61.0makemake install
解决完毕后,请执行 01 过程。

4).若出现这样的报错:
checking whether bzip2 support suffices... configure: error: bzip2 library and headers are required
解决方式:
tar -xvzf bzip2-1.0.6.tar.gzcd bzip2-1.0.6make -f Makefile-libbz2_so#此时,需要修改Makefile文件#将CC=gcc 改为 CC=gcc -fPICmake cleanmake  install PREFIX=/your/path/bzip2-1.0.6
解决完毕后,请执行 01 过程。

5).若出现这样的报错:
C++11 standard requested but CXX11 is not defined
解决方式:
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步骤时可不是照搬,需要做一些修改:
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/libmake instal
R语言安装成功后,就可以进入到自己路径下的R,去尽情安装你喜欢的R包啦。

安装R包命令1:
if (!requireNamespace("BiocManager", quietly = TRUE))    install.packages("BiocManager")BiocManager::install("要安装的包")
安装R包命令2
R CMD INSTALL /.../mypackage.tar.gz --library=/your/lib/path
非Root权限-如何在linux上安装R语言?
非Root权限-如何在linux上安装R语言?
小编总结




很多时候,我们会对一些精美的R包动心,但受限于没有root权限,无法安装使用。
但get了防坑指南的你 就不同了,尽情在你喜欢的R包中自由飞翔吧!

非Root权限-如何在linux上安装R语言?

多区域进化分析







方法类R包







绘图类R包



















软件介绍




免疫微环境文献解读


免疫浸润分析


肿瘤纯度评估工具



END

如有作图分析或编写代码需求,可以后台私信小编。



点击底部的“阅读原文”,直达绘图和项目微店。





以上是关于非Root权限-如何在linux上安装R语言?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 root 权限的情况下安装 Perl 模块?

linux-非root用户运行tomcat

linux 安装jdk 二进制版本,非安装版

在没有root权限的linux服务器上维护个人程序库

linux非root用户如何永久获取/dev/pts/1的权限

R在linux中的library path的问题: