分類: LinuxR

Red Hat Enterprise Linux 7.3 編譯與安裝 R 語言執行環境教學

本篇介紹如何在 Red Hat Enterprise Linux 7.3 系統中,自行編譯與安裝 R 語言執行環境。

R 語言的安裝在大部分的 Linux 發行版中,都可以使用套件的方式安裝(例如 apt 或 yum 等),在某些特殊需求下才會需要使用自己編譯的方式來安裝(例如沒有管理者權限的時候)。


以下我們以 Red Hat Enterprise Linux 7.3 的系統,示範自己從原始碼編譯並安裝 R 的過程,這種安裝方式可以自行調整各種安裝參數,可以在沒有管理者權限的情況下自行安裝。

自行編譯 R 語言執行環境

首先從 R 的官方網站上下載最新的原始碼:

wget https://cran.r-project.org/src/base/R-3/R-3.5.0.tar.gz

解壓縮下載下來的壓縮檔:

tar zxvf R-3.5.0.tar.gz

進入 R 的原始碼目錄:

cd R-3.5.0/

查看一下 configure 所提供的參數有哪些:

./configure --help

自己調整一下需要的參數,然後執行 configure

./configure --prefix=/opt/rproject/R-3.5.0 \
  --enable-R-shlib \
  --with-blas \
  --with-lapack \
  --enable-memory-profiling

其中的 --prefix 參數是指定 R 的安裝路徑,這一個參數是一定要設定的,其餘大部分的參數大概都不需要特別去調整。

如果伺服器的 CPU 核心數很多的話,可以使用平行化的方式加快編譯速度。編譯之前,先看一下伺服器的 CPU 核心數:

lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                40
[略]

CPU(s) 這個欄位就是 CPU 的核心數,以我的這台伺服器來說是 40 核心。接著我使用 20 個 CPU 核心來平行編譯 R 的原始碼:

make -j20

編譯完成後,進行安裝:

make install

安裝完成後,測試 R 是否可以正常執行:

/opt/rproject/R-3.5.0/bin/R

若可以正常使用,就表示已經裝好了。

安裝套件

由於 R 的套件數量非常龐大,一般來說都是在需要的時候才會進行安裝,不會一開始把所有的套件裝上去,如果真的要一次把官方 CRAN 上面所有的套件裝上去的話,可以使用以下的 R 指令。

# 取得已安裝的套件名稱
installed.pkgs <- installed.packages()
installed.name <- names(installed.pkgs[,'Package'])

# 取得所有可安裝的套件名稱
available.name <- names(available.packages()[,1])

# 產生尚未安裝的套件名稱
install.name <- available.name[!available.name %in% installed.name]

# 安裝所有尚未安裝的套件
install.packages(install.name)

一次安裝所有套件的話,請注意硬碟空間是否充足。

Bioconductor

安裝 Bioconductor 基本的核心套件:

source("https://bioconductor.org/biocLite.R")
biocLite()

若要安裝指定的 Bioconductor 套件,可以使用以下 R 指令:

# 安裝 GenomicFeatures 與 AnnotationDbi 這兩個 Bioconductor 套件
biocLite(c("GenomicFeatures", "AnnotationDbi"))

Bioconductor 所收錄的套件數量也是相當多,正常來說也是不會一次都把所有的套件都裝起來,若要一次安裝所有的套件,可以執行以下 R 指令:

# 安裝所有 Bioconductor 套件
biocLite(all_group())
G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

2 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

2 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

3 年 ago