Centos 下非 Root 安裝 Microsoft R Open
Centos 下非 Root 安裝 Microsoft R Open
作者: Hyacz [email protected] 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 包。 特色是: * 非常快 * 穩定,可以回滾包的版本
安裝MRO
- 官方安裝指南(下載、解壓、執行安裝指令碼)
- 手工安裝(下載、解壓、手工安裝)
- Conda(使用
conda install -c mro r
一鍵安裝)
Microsoft R Open 是什麼?
02A34C3D-D5D1-462B-9009-9C37DA1E48E9
MRO 是一個基於 Base R 的加強的完全開源、免費
關於效能對比可以參考這個連結
官方安裝指南
官方給出的指南是最簡便快捷的(在你有 root 許可權的時候)
參考這個連結:官方安裝指南,總體思路就是下載,解壓,用 root 許可權執行安裝指令碼,然後按照提示一路 yes 下去就安裝完成了。 Linux 安裝指南部分摘抄如下:
- Log in as
root
or a user withsudo
privileges. If the latter, precede commands requiringroot
sudo
. - 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 正常啟動時的回顯還包括類似的這一段:
9B82EC5DB61E7291B07D7A559D835388
就說明 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