在Ubuntu 18 R 4.0.3 Biocconductor 3.12 下安裝clusterProfiler遇到的坑

背景:要安裝clusterProfiler做富集分析,BiocManager::install("clusterProfiler"),報(bào)各種包安裝失敗

技能:Linux 和 R 安裝包的方式

首先要區(qū)分是Linux的包,還是R的包

Linux的包,可以先安裝apt-get

然后使用sudo apt-get install pkgname 或者sudo apt install pkgname

如果使用了conda

也可以使用conda install pkgname ,未提升下載包的速度,可以使用國內(nèi)的鏡像,方法是修改~/.condarc文件

安裝R下的包時(shí),可以使用R自帶的install.packages("pkgname"),切換軟件源的方法是chooseCRANmirror(),同樣是選擇國內(nèi)源,可以提升下載速度。

也可以先安裝BiocConductor,然后使用BiocManager::install("pkgname"),切換軟件源的方法是

chooseBioCmirror(),這里又涉及到另外一個(gè)問題,如果選擇國內(nèi)源,而你的BiocConductor版本較低,可能找不到想要的包,還是需要切回默認(rèn)的源。例如北大的源軟件包很多只支持3.15以上,我的3.12就找不到想要的包。

建議是安裝環(huán)境時(shí)將主要的包一次性安裝好,保證所有的包都是最新且滿足依賴關(guān)系。

問題1、安裝stringi報(bào)錯(cuò)依賴庫icudt61l.zip無法自動(dòng)下載的問題

報(bào)錯(cuò)的截圖沒存,大概意思就是下載icudt包失敗。原因是文件在外網(wǎng),網(wǎng)絡(luò)不通,解決辦法:

1,手動(dòng)下載所需要的文件 icu4c-69_1-data-bin-l.zip 到指定目錄,例如/home/bio/tmp/

地址:https://download.csdn.net/download/ytybdgh/86823502

2,在Linux環(huán)境下下執(zhí)行:

R CMD INSTALL --configure-vars='ICUDT_DIR=/home/bio/tmp/' stringi

或者進(jìn)入R后執(zhí)行

install.packages("stringi", configure.vars='ICUDT_DIR=/home/bio/tmp/')

如果是已經(jīng)下載好stringi的文件,通過如下方式升級

install.packages("/home/bio/tmp//stringi_1.7.8.tar.gz", configure.vars='ICUDT_DIR=/home/bio/tmp/',repos = NULL)

問題2 在R里安裝systemfonts報(bào)錯(cuò):

image.png

核心報(bào)錯(cuò)是這一句:

ft_cache.h:9:10: fatal error: ft2build.h: No such file or directory 9

路線 1 按照 這個(gè)鏈接 https://cloud.tencent.com/developer/ask/sof/1168187 里面的解決方案

sudo apt-get update sudo

apt-get install libfontconfig1-dev

結(jié)果安裝libfontconfig1-dev這個(gè)包時(shí)依賴的libexpat1-dev 又依賴libexpat1,然后報(bào)錯(cuò)當(dāng)前版本高于需要版本,通過

sudo apt-get install libexpat1=2.1.0-4ubuntu1.4進(jìn)行降級

之后再根據(jù)類似提示對libc6降級時(shí),又需要對大量重要的庫降級,就放棄了這條路

路線 2 參照https://blog.csdn.net/qq_41104439/article/details/124708889

通過軟鏈接解決,方法無效

ln -s /usr/include/freetype2/ft2build.h /usr/include/

路線3 從第一個(gè)問題和下面這個(gè)鏈接中獲得靈感

https://blog.csdn.net/Wing_kin666/article/details/106020600

手動(dòng)配置INCLUDE_DIR,不再報(bào)上面的錯(cuò)誤

install.packages('systemfonts',configure.vars='INCLUDE_DIR=/home/bio/miniconda3/envs/rna-seq/include/freetype2/')

新報(bào)錯(cuò)如下:

** testing if installed package can be loaded from temporary location

Error: package or namespace load failed for ‘systemfonts’ in dyn.load(file, DLLpath = DLLpath, ...):

unable to load shared object '/home/bio/miniconda3/envs/rna-seq/lib/R/library/00LOCK-systemfonts/00new/systemfonts/libs/systemfonts.so':

/home/bio/miniconda3/envs/rna-seq/lib/R/library/00LOCK-systemfonts/00new/systemfonts/libs/systemfonts.so: undefined symbol: FcFontSetDestroy

Error: loading failed

Execution halted

ERROR: loading failed*

核心報(bào)錯(cuò)是 undefined symbol: FcFontSetDestroy

搜索發(fā)現(xiàn)這個(gè)函數(shù)是在fontconfig.h中,于是在Linux環(huán)境下,conda環(huán)境下,R環(huán)境下嘗試卸載freetype2,fontconfig

下載systemfonts源文件,閱讀configure文件,手動(dòng)編譯,以為安裝完成了,還是不行。(需要1 configure 2 make 3 make install )

閱讀configure文件發(fā)現(xiàn)存在一個(gè)command -v pkg-config 判斷是否支持pkg-config,于是通過sudo apt-get install pkg-config安裝后繼續(xù)嘗試安裝systemfonts,此時(shí)報(bào)錯(cuò)freetype2

* installing *source* package ‘systemfonts’ ...

** package ‘systemfonts’ successfully unpacked and MD5 sums checked

** using staged installation

Package fontconfig was not found in the pkg-config search path.

Perhaps you should add the directory containing `fontconfig.pc'

to the PKG_CONFIG_PATH environment variable

No package 'fontconfig' found

Package freetype2 was not found in the pkg-config search path.

Perhaps you should add the directory containing `freetype2.pc'

to the PKG_CONFIG_PATH environment variable

于是設(shè)置PKG_CONFIG_PATH

發(fā)現(xiàn)miniconda3/lib 和 miniconda3/envs/rna-seq/lib 下都有freetype2,于是刪除了~/miniconda3/lib 目錄下的freetype2相關(guān)文件

然后將包配置文件目錄設(shè)置到虛擬環(huán)境的環(huán)境變量rna-seq中

conda env config vars set PKG_CONFIG_PATH=/home/bio/miniconda3/envs/rna-seq/lib/pkgconfig/

再次執(zhí)行安裝systemfonts,終于成功了,說明pkg-config這個(gè)包是一個(gè)好的工具,可以把依賴的頭文件目錄和庫目錄都配置好,后面安裝clusterProfiler也比較順利了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容