在Ubuntu上是不能直接通過(guò) sudo apt-getinstall r-base
的方式安裝最新版本的R,直接運(yùn)行的結(jié)果是安裝R-3.4版本。這是因?yàn)楣俜秸f(shuō)這是比較穩(wěn)定的版本,所以除非它的維護(hù)期結(jié)束,否則求穩(wěn)
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呢?這里推薦三種方法,給不同級(jí)別的人使用。
方法一: 首先介紹最簡(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運(yùn)行環(huán)境安裝
conda create -n r r-base
之后用 conda activate r
調(diào)用R的環(huán)境即可。
這個(gè)方法的優(yōu)點(diǎn)是不需要root權(quán)限,安裝方便,不過(guò)聽過(guò)在使用的時(shí)候或許會(huì)出現(xiàn)一些bug,我還沒有遇到。
方法二: 第二個(gè)方法需要用到root權(quán)限,會(huì)稍微的復(fù)雜些。
第一步,確認(rèn)你的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安裝源。你需要根據(jù)你的服務(wù)器Ubuntu版本,按照需求復(fù)制下面的其中一行代碼(一定要注意,是一行,不是全部復(fù)制)
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è)方法稍微麻煩些,據(jù)說(shuō)通過(guò)這樣子安裝的R存在一些bug,不過(guò)我沒有遇到。
方法三: 在root權(quán)限下,下載源代碼進(jìn)行編譯安裝。這個(gè)方法稍微會(huì)麻煩一些,因?yàn)橛泻芏嘁蕾嚟h(huán)境要安裝,通常是一邊看到報(bào)錯(cuò),一邊解決報(bào)錯(cuò)。
根據(jù)我的經(jīng)驗(yàn),你至少先得用下面這些命令安裝R的依賴環(huán)境(可能還不夠)
# 設(shè)置環(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用戶,那么安裝之前,你需要用先退出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,也沒有root權(quán)限,想從源碼安裝最新的R語(yǔ)言,那么你需要看下這篇無(wú)root權(quán)限解決編譯時(shí)的依賴問(wèn)題, 這里就不再額外展開了,我覺得有Root和conda在,一般不會(huì)用到這招。
------------------------------------------------------------------------
聯(lián)系客服