在使用R時(shí),很多人都是在登陸節(jié)點(diǎn)上裝R包,但R很占內(nèi)存,直接在登陸節(jié)點(diǎn)跑復(fù)雜程序,管理員該找你喝茶了。但是投遞到計(jì)算節(jié)點(diǎn)又跑不了,真是頭大。原因是計(jì)算節(jié)點(diǎn)的R又沒裝你要用的R包。有人會(huì)說,那在每個(gè)計(jì)算節(jié)點(diǎn)上裝一遍不就行了,計(jì)算節(jié)點(diǎn)如果有20個(gè),一個(gè)一個(gè)裝不是啥大事,可又不止這一個(gè)包,來10個(gè)20個(gè)包,誰受得了?!舅砸约喊裄裝在一個(gè)登陸節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)都可以訪問到的地方,這樣就可以了。大多數(shù)人都沒有root權(quán)限,怎么裝,看下面?!?/p>
R官網(wǎng)下載R,放在你能找到的地方。我下載的是R-3.5.3
第一步:tar -xzf ?R-3.5.3.tar.gz #解壓
? ? ? ? ? ? ? ? cd?R-3.5.3 #打開
? ? ? ? ? ? ? ? ./configure --prefix=/home/bin/R ?#我是放在我的home/bin路徑下的,這個(gè)可以自己放在喜歡的位置
第二步:一般?./configure都會(huì)報(bào)錯(cuò),此步主要是把這些錯(cuò)誤都解決了
【報(bào)錯(cuò)1】configure: error: zlib library and headers are required
解決:自己百度下載zlib
? ? ? ? tar -xzf?zlib-1.2.11.tar.gz ?#可能會(huì)有最新版
? ? ? ? cd?zlib-1.2.11
? ??????./configure --prefix=/home/bin/zlib-1.2.11
? ? ? ? make
? ? ? ? make install
【繼續(xù)configure R】?./configure --prefix=/home/bin/R?--enable-R-shlib?LDFLAGS="-L/$HOME/Programme/zlib-1.2.11/lib" ?CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include"
【報(bào)錯(cuò)2】configure: error: bzip2 library and headers are required
解決:自己百度下載bzip2(官網(wǎng)下不下來,可能是自己chun,就在百度某頁面隨便下了一個(gè))
? ??????tar -xzf?bzip2-1.0.6.tar.gz
????????cd?bzip2-1.0.6
????????make
? ? ? ? make install?PREFIX=/home/bin/bzip2-1.0.6
? ??????make -f Makefile-libbz2_so
最后這步會(huì)有問題,網(wǎng)上說這么解決,一開始沒解決,試了無數(shù)遍后奇跡般解決的。如果你們遇到也可以試試。多試幾遍。
第一:設(shè)置環(huán)境變量:
vi ? ?~/.bashrc #添加下面的代碼
export PATH=/home/bin/bzip2-1.0.6/bin:$PATH
export LD_LIBRARY_PATH=/home/bin/bzip2-1.0.6/lib:$LD_LIBRARY_PATH
export CFLAGS="-fPIC -I/home/bin/bzip2-1.0.6/include"
export LDFLAGS="-fPIC?-L/home/bin/bzip2-1.0.6/lib"
:wq
source ~/.bashrc
第二:指定-fPIC編譯:重新編譯步驟:
?cd bzip2-1.0.6
?make CC='gcc -fPIC'
?make install PREFIX=/home/bin/bzip2-1.0.6
make -f Makefile-libbz2_so?//建立共享library,不會(huì)報(bào)錯(cuò)說明正確
【繼續(xù)configure R】?./configure --prefix=/home/bin/R?--enable-R-shlib?LDFLAGS="-L/home/bin/zlib-1.2.11/lib -L/home/bin/bzip2-1.0.6/lib" ?CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/home/bin/bzip2-1.0.6/include"
【報(bào)錯(cuò)3】configure: error: "liblzma library and headers are required"
解決:自己百度下載?xz-5.2.4.tar.gz
? ? ? ? tar -xzf?xz-5.2.4.tar.gz
? ? ? ? cd?xz-5.2.4
? ??????./configure --prefix=/home/bin/xz-5.2.4
? ? ? ? make
? ? ? ? make install
【繼續(xù)configure R】?./configure --prefix=/home/bin/R?--enable-R-shlib?LDFLAGS="-L/home/bin/zlib-1.2.11/lib -L/home/bin/bzip2-1.0.6/lib -L/home/bin/xz-5.2.4/lib" ?CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/home/bin/bzip2-1.0.6/include -I/home/bin/xz-5.2.4/include"
【報(bào)錯(cuò)4】configure: error: pcre >= 8.20 library and headers are required
解決:自己百度下載 pcre-8.43.tar.gz (千萬不要錯(cuò)下載pcre2- 的版本)
????????tar -xzf?pcre-8.43.tar.gz
? ? ? ? cd?pcre-8.43
? ??????./configure --prefix=/home/bin/pcre-8.43
? ? ? ? make
? ? ? ? make install
【繼續(xù)configure R】?./configure --prefix=/home/bin/R?--enable-R-shlib?LDFLAGS="-L/home/bin/zlib-1.2.11/lib -L/home/bin/bzip2-1.0.6/lib -L/home/bin/xz-5.2.4/lib -L/home/bin/pcre-8.43/lib" ?CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/home/bin/bzip2-1.0.6/include -I/home/bin/xz-5.2.4/include -I/home/bin/pcre-8.43/include"
【報(bào)錯(cuò)5】configure: error: libcurl >= 7.22.0 library and headers are required with support for https
解決:自己百度下載curl-7.64.0.tar.gz
??????tar -xzf?curl-7.64.0.tar.gz
? ? ? ?cd?curl-7.64.0
? ? ? ?./configure --prefix=/home/bin/curl-7.64.0
? ? ? ? make
? ? ? ? make install
【繼續(xù)configure R】?./configure --prefix=/home/bin/R?--enable-R-shlib?LDFLAGS="-L/home/bin/zlib-1.2.11/lib -L/home/bin/bzip2-1.0.6/lib -L/home/bin/xz-5.2.4/lib -L/home/bin/pcre-8.43/lib -L/home/bin/curl-7.64.0/lib" ?CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/home/bin/bzip2-1.0.6/include -I/home/bin/xz-5.2.4/include -I/home/bin/pcre-8.43/include -I/home/bin/curl-7.64.0/include"
這樣configure就不會(huì)有錯(cuò)啦
第三步:make?
【如果沒有報(bào)錯(cuò)】make install 就裝好了
【如果有報(bào)錯(cuò)】?
報(bào)錯(cuò)1:報(bào)錯(cuò)內(nèi)容包含libbz2.a,重復(fù)第二步的報(bào)錯(cuò)2解決方案,直到?jīng)]有報(bào)錯(cuò)才可以,要不然會(huì)一直報(bào)錯(cuò),無法make。
報(bào)錯(cuò)2:報(bào)錯(cuò)內(nèi)容包含lzma、pcre,需要修改configue 內(nèi)容,加-Wl,rpath
./configure --prefix=/home/bin/R?--enable-R-shlib?LDFLAGS="-L/home/bin/zlib-1.2.11/lib -L/home/bin/bzip2-1.0.6/lib -L/home/bin/xz-5.2.4/lib -L/home/bin/pcre-8.43/lib -L/home/bin/curl-7.64.0/lib -Wl,rpath=/home/bin/pcre-8.43/lib -Wl,rpath=/home/bin/xz-5.2.4/lib" ?CPPFLAGS="-I/$HOME/Programme/zlib-1.2.11/include -I/home/bin/bzip2-1.0.6/include -I/home/bin/xz-5.2.4/include -I/home/bin/pcre-8.43/include -I/home/bin/curl-7.64.0/include"
接著make, make install
第四步:待所有的安裝都成功后,把R 的路徑寫在bashrc里就可以了
參考鏈接:http://blog.sina.com.cn/s/blog_6aaea1760102x5ka.html
? ??????????????????http://m.itdecent.cn/p/edb234eed915