如何在MAC M1芯片上安裝R的Bioconductor包

蘋(píng)果的m1芯片已經(jīng)出到了第二代的m1pro/max版本了,不少同學(xué)也是用上了新的macbook,m1芯片的優(yōu)點(diǎn)我們已經(jīng)有目共睹。雖然新版本的R的新版本和cran上的標(biāo)準(zhǔn)包如ggplot2等也已經(jīng)原生的支持了m1。但是Bioconductor的包或者一些github上的包還是需要我們通過(guò)編譯安裝的方式進(jìn)行的。

對(duì)于m1的電腦,當(dāng)我們嘗試用過(guò)BiocManager::install()進(jìn)行安裝時(shí),部分包會(huì)出現(xiàn)提示錯(cuò)誤。下面我以DESeq2包為例,嘗試直接安裝提示錯(cuò)誤:

make: /opt/R/arm64/bin/gfortran: No such file or directory
make: *** [ttest.o] Error 1
ERROR: compilation failed for package ‘ DESeq2’

這里需要我們確認(rèn)好三件事情:
1.正確的安裝好gcc,終端輸入gcc看看是否有改命令,如果沒(méi)有通過(guò)命令brew install gcc安裝;
2.正確的安裝好gfortran,如果沒(méi)有安裝好通過(guò)命令brew install gfortran進(jìn)行安裝。
3.安裝Xcode command line tools,終端輸入xcode-select --install

接下來(lái)就是重點(diǎn)操作了:

首先查看一下gcc的路徑,用 brew list gcc命令進(jìn)行查看:

查看gcc路徑

如我這里可以看到路徑在/opt/homebrew/Cellar/gcc/11.2.0_3
終端輸入如下命令:

mkdir ~/.R
touch ~/.R/Makevars

隨后編輯Makevars文件,vi ~/.R/Makevars

VER=-11
CC=gcc$(VER)
CXX=g++$(VER)
CXX11=g++$(VER)
CXX14=g++$(VER)
CXX17=g++$(VER)
CFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
CXXFLAGS=-mtune=native -g -O2 -Wall -pedantic -Wconversion
FLIBS=-L/opt/homebrew/Cellar/gcc/11.2.0_3

注意:最后的FLIBS需要和你上面的路徑對(duì)應(yīng)!!VER=-11這個(gè)數(shù)字取決于你的gcc版本??!
將安裝的gfortran的路徑鏈到R目錄:
sudo ln -s /opt/homebrew/bin/gfortran /opt/R/arm64/bin/
這個(gè)時(shí)候我們重新安裝,最好在命令行用R安裝,用rstudio有時(shí)候會(huì)出現(xiàn)莫名錯(cuò)誤!!

安裝成功

就可以順利安裝了。

總結(jié):

導(dǎo)致安裝失敗的原因有幾個(gè):

  1. 沒(méi)有安裝gcc,mac自帶的是clang大部分的源碼是可以編譯通過(guò)的,但是部分不行;
  2. 沒(méi)有安裝Xcode command line tools導(dǎo)致缺少了c++的頭文件;
  3. 沒(méi)有指定使用gcc去編譯,需要配置~/.R/Makevars去實(shí)現(xiàn);
  4. gfortan沒(méi)有制定,通過(guò)軟鏈解決。

想了解更多?還不趕快關(guān)注我,以及我的公眾號(hào)生信咖啡嗎?

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

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