1. 程式人生 > 其它 >Centos 下非 Root 安裝 Microsoft R Open

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 的加強的完全開源、免費

的 R 發行版,與原有的 Base R 完全適配,可以使用所有的 R 包和指令碼。加強的地方主要體現在效能再生性上,支援Windows、Linux和MacOS。

關於效能對比可以參考這個連結

官方安裝指南

官方給出的指南是最簡便快捷的(在你有 root 許可權的時候)

參考這個連結:官方安裝指南,總體思路就是下載,解壓,用 root 許可權執行安裝指令碼,然後按照提示一路 yes 下去就安裝完成了。 Linux 安裝指南部分摘抄如下:

  1. Log in as root or a user with sudo privileges. If the latter, precede commands requiring root
    privileges with sudo.
  2. Make sure R is not running. Stop every R process prior to installing Microsoft R Open. You may need to close your IDE.
  3. Download the Microsoft R Open installer.
  4. Change to the directory where you downloaded the Microsoft R Open installer bundle.
  5. Untar the installer bundle as follows:
    1. tar -xf microsoft-r-open-3.4.0.tar.gz
  6. Go to the microsoft-r-open directory as follows:
    1. cd microsoft-r-open/
  7. Install Microsoft R Open as follows:
    1. sudo ./install.sh
  8. Follow the installer's onscreen prompts.
  9. To enable the optional multi-threaded performance for Microsoft R Open, select the MKL installation option and accept the end-user license agreement.
  10. 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.

重要(隨便翻譯一下↑)

  1. Microsoft R Open 將會被預設安裝在 lib64/R/bin/R。(會覆蓋之前安裝的 Base R 的軟連結。)
  2. 微軟做了一個 MRAN 的映象,可以回滾舊版本的包。

使用 Conda 安裝

不需要 root 許可權,但是需要能訪問外網( -除非製作本地 Conda Channel- ),安裝的版本稍落後。

參考這個連結:Using Microsoft R Open with Conda

  1. 首先安裝好miniconda
  2. 然後使用 conda install -c mro r安裝 Microsoft R Open
  3. 再安裝 mkl 擴充套件,參考這個連結

注意:目前Conda的源更新速度落後於官方釋出的安裝包,目前Conda的源只更新到 3.2.3,而官方安裝包已經發布到了 3.4.0

手工安裝

手工安裝比較繁瑣,優點在於可以不需要 root 許可權安裝上最新的 Microsoft R Open。

接下來以 Centos 為例(同樣適用於其他使用 rpm 作為包管理器的 Linux發行版)

  1. 從官方網站下載對應的安裝包。
  2. 解壓安裝包:
    1. tar -xf microsoft-r-open-3.4.0.tar.gz
  3. 進入資料夾 microsoft-r-open
    1. cd microsoft-r-open
  4. 利用 rpm2cpio解開 rpm 包:
    1. rpm2cpio rpm/microsoft-r-open-mro-3.4.rpm |cpio -idmv
    2. rpm2cpio rpm/microsoft-r-open-foreachiterators-3.4.rpm |cpio -idmv
    3. rpm2cpio rpm/microsoft-r-open-mkl-3.4.rpm |cpio -idmv
  5. 拷貝 mkl 的庫檔案:
    1. cp usr/lib64/microsoft-r/3.4/stage/Linux/bin/x64/*.so usr/lib64/microsoft-r/3.4/lib64/R/lib/
  6. 編輯檔案 usr/lib64/microsoft-r/3.4/lib64/R/etc/Rprofile.site ,在檔案頭部新增:
    1. Sys.setenv("MKL_INTERFACE_LAYER"="GNU,LP64")
    2. Sys.setenv("MKL_THREADING_LAYER"="GNU")
  7. 拷貝 mro 到 $HOME
    1. mv usr/lib64/microsoft-r/3.4/lib64/R ~/mro-3.4
  8. 新增環境變數,寫入 ~/.bash_profile
    1. export R_HOME=~/mro-3.4
    2. export PATH=~/mro-3.4/bin:$PATH
    3. 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 已經安裝成功了。

參考連結

  1. Microsoft R Open 官方網站:https://mran.microsoft.com/open/
  2. Microsoft R Open 官方安裝指南:https://mran.microsoft.com/documents/rro/installation/
  3. Microsoft R Open 下載地址:https://mran.microsoft.com/download/
  4. Microsoft R Open 與 Base R 效能對比:https://htmlpreview.github.io/?https://github.com/andrie/version.compare/blob/master/inst/doc/version.compare.html
  5. 通過 Conda 安裝 Microsoft R Open: https://conda.io/docs/user-guide/tasks/use-mro-with-conda.html#using-microsoft-r-open-with-conda