前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >非Root权限-如何在linux上安装R语言?

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

作者头像
作图丫
发布2022-03-29 09:28:31
4.7K0
发布2022-03-29 09:28:31
举报
文章被收录于专栏:作图丫

导语

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包中自由飞翔吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作图丫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档