實(shí)話說绕德,這是一個(gè)非常龐大的問題,因?yàn)檫@個(gè)牽扯到服務(wù)器硬件摊阀,系統(tǒng)等軟件因素耻蛇,還有一些網(wǎng)絡(luò)問題導(dǎo)致的玄學(xué)問題,復(fù)雜性導(dǎo)致它很有挑戰(zhàn)胞此。
但是臣咖,我們不能因?yàn)橛刑魬?zhàn)性就放棄了,畢竟總會(huì)不停遇到這個(gè)問題漱牵,而且科研人從不低頭夺蛇。
所以,我不準(zhǔn)備廢話酣胀,直接上結(jié)論:
——————————————————————————————————————
R包安裝出錯(cuò)刁赦,九成是某個(gè)依賴的R包安裝失敗導(dǎo)致娶聘,
對(duì)非科班出身的研究人員來說,這類問題大概率源頭上解決不了甚脉,
我的經(jīng)驗(yàn)表明這類問題換個(gè)思路九成都能解決:源碼安裝舊版本丸升!
——————————————————————————————————————
舉個(gè)例子
我想安裝余教授課題組開發(fā)的多序列alignment呈現(xiàn)工具,ggmsa
第一步牺氨,確定安裝基本要求
一看依賴我就有點(diǎn)撓頭狡耻,R要求版本4.1.以上,我上次更新R還是安裝服務(wù)器的時(shí)候猴凹,我的R是3.5.1夷狰,所以,我重新裝了一個(gè)R
conda create -n Rv4 python=3.5 -y
conda activate Rv4
conda install -c conda-forge R
意外的安裝成功郊霎!
第二步沼头,按提示安裝
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("ggmsa")
CentOS + 非root用戶+新裝的最新版R+圖形呈現(xiàn)用途的R包,不出意外地书劝,報(bào)錯(cuò)了瘫证!
詳細(xì)報(bào)錯(cuò)沒保存,也不重要庄撮,因?yàn)槲遗税胩鞗]解決背捌。
大體是安裝ggmsa需要先安裝ggalt, 而ggalt又依賴于proj4. 安裝 proj4 時(shí)報(bào)錯(cuò)
configure: error: libproj and/or proj.h/proj_api.h not found in standard search locations.
*** Install PROJ library and if necessary set PKG_CPPFLAGS/PKG_LIBS accordingly.
ERROR: configuration failed for package ‘proj4’
網(wǎng)上的解決辦法,五花八門洞斯,我的水平有限毡庆,都試過了,沒有找到適合于非root用戶的解決辦法烙如。
第三步么抗,祭出我的大法:降版本源碼安裝
回到R運(yùn)行:
install.packages("https://cran.r-project.org/src/contrib/Archive/proj4/proj4_1.0-8.1.tar.gz", repo=NULL, type="source")
安裝成功!
第四步,重新安裝ggmsa
BiocManager::install("ggmsa")
library("ggmsa")
安裝成功亚铁!
總結(jié):R默認(rèn)安裝最新版本R包蝇刀,但是有時(shí)候你所用的計(jì)算機(jī)年紀(jì)大跟不上腳步,降低版本似乎是比較好的選擇徘溢。
ps: 實(shí)際上版本選擇有個(gè)技巧:安裝A的依賴B時(shí)吞琐,選擇B的版本,其發(fā)布時(shí)間應(yīng)該早于A的然爆,但是不一定全部OK, 例如這里proj4_1.0-8.1我們安裝的版本發(fā)布于2019年站粟,而依賴于它的ggalt_0.4.0發(fā)布于2017年,神奇的是也成功了曾雕,我推測(cè)應(yīng)該是因?yàn)間galt需要使用的proj4部分功能沒有更新的緣故奴烙。
其它R包安裝的問題,我在2019年寫過一篇R包安裝大全,可供參考切诀。
總之揩环,面對(duì)玄學(xué)一樣的計(jì)算機(jī)問題,有時(shí)候換個(gè)角度思考反而能發(fā)現(xiàn)新世界幅虑。