在Ubuntu上是不能直接通過(guò) sudo apt-getinstall r-base的方式安裝最新版本的R,直接運行的結果是安裝R-3.4版本。這是因為官方說(shuō)這是比較穩定的版本,所以除非它的維護期結束,否則求穩
R 3.4 packages for Ubuntu on i386 and amd64 are available for all stable Desktop releases of Ubuntu prior to Bionic Beaver (18.04) until their official end of life date. However, only the latest Long Term Support (LTS) release is fully supported. As of November 18, 2018 the supported releases are Xenial Xerus (16.04; LTS), and Trusty Tahr (14.04; LTS).
那么問(wèn)題來(lái)了,如何在Ubuntu上安裝比較新版本的R呢?這里推薦三種方法,給不同級別的人使用。
方法一: 首先介紹最簡(jiǎn)單的方法,也就是使用conda進(jìn)行安裝。使用 conda search r-base在conda的頻道中檢索,
...
r-base 3.5.1 hfb2a302_1009 anaconda/cloud/conda-forge
r-base 3.5.1 hfb2a302_1010 anaconda/cloud/conda-forge
r-base 3.6.0 hce969dd_0 pkgs/r
r-base 3.6.1 h6e652e1_3 anaconda/cloud/conda-forge
r-base 3.6.1 h8900bf8_0 anaconda/cloud/conda-forge
r-base 3.6.1 h8900bf8_1 anaconda/cloud/conda-forge
r-base 3.6.1 h8900bf8_2 anaconda/cloud/conda-forge
r-base 3.6.1 hba50c9b_4 anaconda/cloud/conda-forge
r-base 3.6.1 hce969dd_0 pkgs/r
然后新建一個(gè)R運行環(huán)境安裝
conda create -n r r-base
之后用 conda activate r調用R的環(huán)境即可。
這個(gè)方法的優(yōu)點(diǎn)是不需要root權限,安裝方便,不過(guò)聽(tīng)過(guò)在使用的時(shí)候或許會(huì )出現一些bug,我還沒(méi)有遇到。
方法二: 第二個(gè)方法需要用到root權限,會(huì )稍微的復雜些。
第一步,確認你的Ubuntu版本,是Xenial Xerus(16.04; LTS), Trusty Tahr (14.04; LTS), Bionic Beaver (18.04;LTS), Cosmic Cuttlefish (18.10), Disco Dingo (19.04)的哪一種。
第二步,使用 sudo vim/etc/apt/sources.list增加新的R安裝源。你需要根據你的服務(wù)器Ubuntu版本,按照需求復制下面的其中一行代碼(一定要注意,是一行,不是全部復制)
deb https://cloud.r-project.org/bin/linux/ubuntu disco-cran35/
deb https://cloud.r-project.org/bin/linux/ubuntu cosmic-cran35/
deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/
deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran35/
deb https://cloud.r-project.org/bin/linux/ubuntu trusty-cran35/
我的服務(wù)器是 xenial,所以增加的是
deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran35/
之后,用下面的命令就可以安裝最新的R
sudo apt-get update
sudo apt-get install r-base
sudo apt-get install r-base-dev
這個(gè)方法稍微麻煩些,據說(shuō)通過(guò)這樣子安裝的R存在一些bug,不過(guò)我沒(méi)有遇到。
方法三: 在root權限下,下載源代碼進(jìn)行編譯安裝。這個(gè)方法稍微會(huì )麻煩一些,因為有很多依賴(lài)環(huán)境要安裝,通常是一邊看到報錯,一邊解決報錯。
根據我的經(jīng)驗,你至少先得用下面這些命令安裝R的依賴(lài)環(huán)境(可能還不夠)
# 設置環(huán)境變量
export CFLAGS=' -fPIC' CXXFLAGS=' -fPIC'
## build-essential
sudo apt-get install -y build-essential
## java
sudo apt install -y openjdk-9-jdk
## 各種包
sudo apt install -y autoconf libz-dev libbz2-dev liblzma-dev libssl-dev
# solve libcurl problem
#sudo apt install -y libcurl4-openssl-dev # not works for Ubuntu 16.04
sudo apt install -y libcurl4-gnutls-dev
### curses
sudo apt-get install -y libncurses5-dev
### solve X11 problem
sudo apt-get install -y xorg-dev
### zlib2
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz && cd zlib-1.2.11 && ./configure && make && sudo make install && cd .. && rm -rf zlib-1.2.11
### bzip2
wget https://fossies.org/linux/misc/bzip2-1.0.8.tar.gz
tar -zxvf bzip2-1.0.8.tar.gz && cd bzip2-1.0.8
# add -fPIC
sed -i 's/CFLAGS=/CFLAGS=-fPIC /' Makefile
make && sudo make install && cd .. && rm -rf bzip2-1.0.8
假如你使用的是conda用戶(hù),那么安裝之前,你需要用先退出conda環(huán)境,不然libcurl
下載R的源代碼,進(jìn)行編譯安裝
wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-3/R-3.6.1.tar.gz
tar -zxvf R-3.6.1.tar.gz
cd R-3.6.1
# --enable-R-shlib for Rstudio server
./configure --enable-R-shlib
make -j 8
make install
額外加餐:假如你不想使用conda,也沒(méi)有root權限,想從源碼安裝最新的R語(yǔ)言,那么你需要看下這篇無(wú)root權限解決編譯時(shí)的依賴(lài)問(wèn)題, 這里就不再額外展開(kāi)了,我覺(jué)得有Root和conda在,一般不會(huì )用到這招。
------------------------------------------------------------------------
聯(lián)系客服