linux没有安装权限r包,Linux中root安装microsoft R open(MRO),普通用户如何使用?...

年前,发现了Microsoft R Open更新到了4.0,就把服务器上的R版本更新了。

安装时,发现需要root权限,然后就sudo安装了。

安装之后,发现自己的R版本没有变化,RStudio server也没有变化,淡淡的忧伤。

RStudio Server重启,然后发现有线程无法正常结束,top -c也找不到任务项,使用服务器重启大法,搞定,然后就是更新R包(漫长的一下午……)

自己的R版本如何改变呢,上网一搜,差点误入歧途,要分解install.sh脚本,巴拉巴拉……

最终的解决方案是,把/opt/安装包的R建立了软链到我的目录下,就成功了。

以下是折腾记录:

现在root下已经安装过了MRO(Microsoft R Open)4.0.2,但是普通用户怎么安装呢?

上网搜索了一下,发现可以在非root用户下安装,有两种途径:

1,conda安装conda install -c r r-microsoftr

但是版本还是3.5,忧伤,不是最新版的

fbde71249e898ca4acfbcdb57652120b.png

2,解析install.sh的代码,

代码来源:https://www.jianshu.com/p/5958fa98d42f# 1.下载并解压官方安装包wget https://mran.blob.core.windows.net/install/mro/3.5.1/microsoft-r-open-3.5.1.tar.gztar -xf microsoft-r-open-3.5.1.tar.gzcd microsoft-r-open/# 2. 查看 install.sh 内容less install.sh# 分析发现脚本判断了当前操作系统然后依次安装(以 YUM 为例)# ${SCRIPT_DIR}/rpm/microsoft-r-open-mro*.rpm# ${SCRIPT_DIR}/rpm/microsoft-r-open-foreachiterators*.rpm# ${SCRIPT_DIR}/rpm/microsoft-r-open-mkl*.rpm# 3. 分别查看三个 rpm 包的安装脚本,重点看 postinstall scriptlet 部分的内容rpm -qp --scripts rpm/microsoft-r-open-mro*.rpmrpm -qp --scripts rpm/microsoft-r-open-foreachiterators*.rpmrpm -qp --scripts rpm/microsoft-r-open-mkl*.rpm# 分析发现 mro* 包是在往 /usr/bin/ 下面写链接文件# foreachiterators* 没有做任何事情# mkl* 备份了原有的 R/lib/*.so 文件,并拷贝了一套新的动态链接库文件覆盖到了安装路径中# 4. 手工解压 rpm 包rpm2cpio rpm/microsoft-r-open-mro*.rpm |cpio -idmvrpm2cpio rpm/microsoft-r-open-foreachiterators*.rpm |cpio -idmvrpm2cpio rpm/microsoft-r-open-mkl*.rpm |cpio -idmv# 5. 手工执行 postinstall scriptletINSTALL_PREFIX="./opt/microsoft/ropen/3.5.1/" # 从前面解压的路径可以看出来mkdir -p ${INSTALL_PREFIX}/lib64/R/backup/libmv ${INSTALL_PREFIX}/lib64/R/lib/*.so ${INSTALL_PREFIX}/lib64/R/backup/libcp ${INSTALL_PREFIX}/lib64/R/backup/lib/libR.so ${INSTALL_PREFIX}/lib64/R/libcp ${INSTALL_PREFIX}/stage/Linux/bin/x64/*.so ${INSTALL_PREFIX}/lib64/R/lib# 6. 拷贝解压完的目录到指定安装位置MRO_HOME="~/mro"cp ${INSTALL_PREFIX} ${MRO_HOME}# 7. 设置环境变量# 注:R_HOME 会影响含 C++ 的 package 编译安装时寻找的头文件和链接库,详见 ${INSTALL_PREFIX}/lib64/R/etc/Makevars。export R_HOME=${MRO_HOME}/lib64/Rexport PATH=${MRO_HOME}/bin:${PATH}

上面应该可以成功,但是很复杂,我明明有root权限,为何不能直接用root下的R呢?

正确的方法

发现MRO安装的路径:/opt/microsoft/ropen/4.0.2/lib64/R/bin

查看我自己的R路径:$ which R~/anaconda3/bin/R

把我的R路径,建立软链到MRO的路径下即可!cd ~/bin/ln -s /opt/microsoft/ropen/4.0.2/lib64/R/bin/R .

然后查看一下R的路径:$ ll R R -> /opt/microsoft/ropen/4.0.2/lib64/R/bin/R

搞定!

测试一下:$ RR version 4.0.2 (2020-06-22) -- "Taking Off Again"Copyright (C) 2020 The R Foundation for Statistical ComputingPlatform: x86_64-pc-linux-gnu (64-bit)Microsoft R Open 4.0.2The enhanced R distribution from MicrosoftMicrosoft packages Copyright (C) 2020 Microsoft CorporationUsing the Intel MKL for parallel mathematical computing (using 64 cores).Default CRAN mirror snapshot taken on 2020-07-16.See: https://mran.microsoft.com/.

测试一下radian:$ rR version 4.0.2 (2020-06-22) -- "Taking Off Again"Platform: x86_64-pc-linux-gnu (64-bit)r$>

本文来自微信公众号【育种数据分析之放飞自我】公众号ID:R-breeding;未经许可谢绝二次转载至其他网站

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值