Centos 下非 Root 安装 Microsoft R Open
Centos 下非 Root 安装 Microsoft R Open
作者: Hyacz hyacinth.hao@foxmail.com
2017年8月30日
本教程发布时仅针对 Microsoft R Open 3.4.0 版本测试通过。
写在前面
我们新写的 GWAS 的算法包 MVP 采用了 Microsoft R Open,在我们对计算的优化中 MRO 起到了非常关键的作用。在测试的时候就遇到了在没有 root 权限要安装 MRO 的问题,经过百度、Google 都没有找到较好的方案,研究了 MRO 的安装脚本和解开 RPM 包分析了之后,最终采用手工安装的方式成功安装,遂成此文与大家分享。(另随文附赠官方安装和 Conda 安装方法)
TL; DR
简要概括Microsoft R Open以及其各种安装方法,手工安装过程见文章最后。
Microsoft R Open 是一个加强的 R 发行版,完全适配与原有的 Base R——这意味着它可以使用所有的 R 包。 特色是: * 非常快 * 稳定,可以回滚包的版本
官方安装指南(下载、解压、运行安装脚本)
手工安装(下载、解压、手工安装)
Conda(使用
conda install -c mro r
一键安装)
Microsoft R Open 是什么?
MRO 是一个基于 Base R 的加强的完全开源、免费的 R 发行版,与原有的 Base R 完全适配,可以使用所有的 R 包和脚本。加强的地方主要体现在性能和再生性上,支持Windows、Linux和MacOS。
关于性能对比可以参考这个链接
官方安装指南
官方给出的指南是最简便快捷的(在你有 root 权限的时候)
参考这个链接:官方安装指南,总体思路就是下载,解压,用 root 权限运行安装脚本,然后按照提示一路 yes 下去就安装完成了。 Linux 安装指南部分摘抄如下:
Log in as
root
or a user withsudo
privileges. If the latter, precede commands requiringroot
privileges withsudo
.Make sure R is not running. Stop every R process prior to installing Microsoft R Open. You may need to close your IDE.
Download the Microsoft R Open installer.
Change to the directory where you downloaded the Microsoft R Open installer bundle.
Untar the installer bundle as follows:
tar -xf microsoft-r-open-3.4.0.tar.gz
Go to the
microsoft-r-open
directory as follows:cd microsoft-r-open/
Install Microsoft R Open as follows:
sudo ./install.sh
Follow the installer's onscreen prompts.
To enable the optional multi-threaded performance for Microsoft R Open, select the MKL installation option and accept the end-user license agreement.
When the Microsoft R Open installation is complete, run R in a terminalto begin interacting with R. Or, configure your R integrated development environment (R IDE).
Important!
After installing, the default R path is updated to point to R installed with Microsoft R Open 3.4.0, which is under
lib64/R/bin/R
.The CRAN repository points to a snapshot from May 1, 2017. This means that every user of Microsoft R Open has access to the same set of CRAN package versions. To get packages from another date, use the checkpoint package, installed with Microsoft R Open.
重要(随便翻译一下↑)
Microsoft R Open 将会被默认安装在
lib64/R/bin/R
。(会覆盖之前安装的 Base R 的软链接。)微软做了一个 MRAN 的镜像,可以回滚旧版本的包。
使用 Conda 安装
不需要 root 权限,但是需要能访问外网( -除非制作本地 Conda Channel- ),安装的版本稍落后。
参考这个链接:Using Microsoft R Open with Conda
首先安装好miniconda
然后使用
conda install -c mro r
安装 Microsoft R Open再安装 mkl 扩展,参考这个链接
注意:目前Conda的源更新速度落后于官方发布的安装包,目前Conda的源只更新到 3.2.3,而官方安装包已经发布到了 3.4.0
手工安装
手工安装比较繁琐,优点在于可以不需要 root 权限安装上最新的 Microsoft R Open。
接下来以 Centos 为例(同样适用于其他使用 rpm 作为包管理器的 Linux发行版)
从官方网站下载对应的安装包。
解压安装包:
tar -xf microsoft-r-open-3.4.0.tar.gz
进入文件夹
microsoft-r-open
:cd microsoft-r-open
利用
rpm2cpio
解开 rpm 包:rpm2cpio rpm/microsoft-r-open-mro-3.4.rpm |cpio -idmv
rpm2cpio rpm/microsoft-r-open-foreachiterators-3.4.rpm |cpio -idmv
rpm2cpio rpm/microsoft-r-open-mkl-3.4.rpm |cpio -idmv
拷贝 mkl 的库文件:
cp usr/lib64/microsoft-r/3.4/stage/Linux/bin/x64/*.so usr/lib64/microsoft-r/3.4/lib64/R/lib/
编辑文件
usr/lib64/microsoft-r/3.4/lib64/R/etc/Rprofile.site
,在文件头部添加:Sys.setenv("MKL_INTERFACE_LAYER"="GNU,LP64")
Sys.setenv("MKL_THREADING_LAYER"="GNU")
拷贝 mro 到
$HOME
:mv usr/lib64/microsoft-r/3.4/lib64/R ~/mro-3.4
添加环境变量,写入
~/.bash_profile
export R_HOME=~/mro-3.4
export PATH=~/mro-3.4/bin:$PATH
export LD_LIBRARY_PATH=~/mro-3.4/lib:$LD_LIBRARY_PATH
注意:
R_HOME
后不要添加/
不然启动的时候会弹 Warning 告诉你R_HOME
的值被忽略了。另外写完文件之后需要source~/.bash_profile
使其生效。
检验安装
在终端输入:
R
如果回显中除了 Base R 正常启动时的回显还包括类似的这一段:
就说明 Microsoft R Open 已经安装成功了。
参考链接
Microsoft R Open 官方网站:https://mran.microsoft.com/open/
Microsoft R Open 官方安装指南:https://mran.microsoft.com/documents/rro/installation/
Microsoft R Open 下载地址:https://mran.microsoft.com/download/
Microsoft R Open 与 Base R 性能对比:https://htmlpreview.github.io/?https://github.com/andrie/version.compare/blob/master/inst/doc/version.compare.html
通过 Conda 安装 Microsoft R Open: https://conda.io/docs/user-guide/tasks/use-mro-with-conda.html#using-microsoft-r-open-with-conda