近來筆者因爲研究須要,開始研究Linux系統,並動手安裝了VMware和Ubuntu軟件。因緣際會(主要是本身開始入坑Github)發現以前在Windows下安裝失敗的一個R包bignmf沒法安裝緣由。 這個包只能在Ubuntu上測試運行。因此以前在windows上根本沒法編譯和安裝。因此筆者打算在Ubuntu上安裝R並安裝這個包進行使用。 這裏簡單解釋下bignmf包的用處,它是基於Rcpp和RcppEigen兩個包,經過底層C++代碼調用實現的一個R包,實現的算法是NMF(Nonnegative Matrix Factorization,非負矩陣分解),做者是愛荷華州立大學的潘嵐峯大神。固然R自己自帶也有NMF包,不過語法不是很友好的感受,此外最近筆者也發現了另外的能夠在windows上運行的NMF的R包,NMF的理論和應用方面,包括bignmf的編譯安裝,後面有時間會更新(先挖坑),這裏不作詳細介紹。 回到本篇的主要目的,如何在Ubuntu中安裝R。 這裏提供三個方法:1.Linux安裝軟件的廣泛方法——命令行;2.新立得軟件包;3.從官網下載R語言環境源碼,自行編譯安裝。 1.基於命令行的方法 首先先進入/etc/apt/sources.list,變換軟件源,同時進入管理員權限html
cd /etc/apt/ gedit sources.list
在最下面添加一行,deb後面的網址是鏡像,根據你的喜愛選一個(反正我推薦清華的,速度快,不過以前用廈大的也不錯),具體的鏡像地址見後面的網址。linux
deb https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/linux/ubuntu xenial/
而ubuntu xenial則是根據ubuntu版本肯定的。個人是16.04,因此是xenial。具體的看官方說明,文末貼連接。 完了以後先更新下軟件源。就能夠開始安裝R了。若是咱們須要自行編譯R包而且安裝的話,就須要在安裝r-base-dev。不過筆者測試過,3.3.3版本的r-base自帶了r-base-dev。因此不須要進行額外安裝。ubuntu
apt-get update apt-get install r-base apt-get install r-base-dev
完了以後,官方推薦還能夠再加個軟件源,是關於R的拓展包的。這裏貼出命令的通用格式,能夠根據需求替換<>的內容。 也能夠添加下載的公共祕鑰。windows
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9 deb https://<my.favorite.ubuntu.mirror>/ trusty-backports main restricted universe
完了以後,在命令行裏敲入r,出現下面的頁面說明安裝成功。 2.基於新立得軟件管理包 新立得軟件管理包是Linux下的神器,能夠很方便的管理各種軟件和依賴庫等(上篇提到的WRF-DA模塊編譯依賴庫有些是用這個安裝的,具體過程等介紹WRF安裝時補充)。固然一開始我沒在個人Ubuntu軟件裏找到新立得。後面仔細翻了下軟件列表。發現了這個軟件——Synaptic Package Manager,這個就是新立得軟件管理包了。啓動它,搜索r-base,如圖,右擊標記安裝,而後應用。 3.基於自行編譯的方法 自行編譯的方法,筆者沒有具體嘗試。可是看了下官方文檔。大體的流程以下: 官方推薦是組織一個文件夾進行安裝,一級文件夾爲R_Home,而後把源碼解壓到R_Home下面,並在下面創建src, doc等多個二級文件夾。 而後回到R_Home文件夾。以管理員身份進入。測試
./configure make make check make check-all
make check-all是針對所有的編譯的(可選),最後在安裝便可。命令行
make install
能夠改變安裝路徑rest
./configure --prefix=/where/you/want/R/to/go make prefix=/path/to/here install
具體能夠見官方文檔(連接見文末) 在R裝好的狀況下,爲了寫代碼方便,推薦安裝R最好的IDE,Rstudio。 這邊Rstudio的安裝就不展開講了。下載好deb安裝文件,直接加命令行安裝便可。code
dpkg -i rstudio-1.0.136-amd64.deb
在Linux中用Rstudio簡單畫個散點圖。 server
R語言linux安裝官方文檔:
R語言鏡像地址:
R語言linux編譯安裝官方文檔:
https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Installation