本篇介紹如何在 Red Hat Enterprise Linux 7.3 系統中,自行編譯與安裝 R 語言執行環境。
R 語言的安裝在大部分的 Linux 發行版中,都可以使用套件的方式安裝(例如 apt 或 yum 等),在某些特殊需求下才會需要使用自己編譯的方式來安裝(例如沒有管理者權限的時候)。
首先從 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 基本的核心套件:
source("https://bioconductor.org/biocLite.R") biocLite()
若要安裝指定的 Bioconductor 套件,可以使用以下 R 指令:
# 安裝 GenomicFeatures 與 AnnotationDbi 這兩個 Bioconductor 套件 biocLite(c("GenomicFeatures", "AnnotationDbi"))
Bioconductor 所收錄的套件數量也是相當多,正常來說也是不會一次都把所有的套件都裝起來,若要一次安裝所有的套件,可以執行以下 R 指令:
# 安裝所有 Bioconductor 套件 biocLite(all_group())