非Root权限

您所在的位置:网站首页 root权限怎么安装 非Root权限

非Root权限

2024-05-11 11:45| 来源: 网络整理| 查看: 265

导语

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3