蘋果的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上的包還是需要我們通過編譯安裝的方式進(jìn)行的届惋。
對于m1的電腦,當(dāng)我們嘗試用過BiocManager::install()
進(jìn)行安裝時(shí)奄薇,部分包會出現(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看看是否有改命令呵晚,如果沒有通過命令brew install gcc
安裝蜘腌;
2.正確的安裝好gfortran,如果沒有安裝好通過命令brew install gfortran
進(jìn)行安裝饵隙。
3.安裝Xcode command line tools,終端輸入xcode-select --install
接下來就是重點(diǎn)操作了:
首先查看一下gcc的路徑撮珠,用 brew list gcc
命令進(jìn)行查看:
如我這里可以看到路徑在/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需要和你上面的路徑對應(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í)候會出現(xiàn)莫名錯(cuò)誤7夏馈伺绽!
就可以順利安裝了。
總結(jié):
導(dǎo)致安裝失敗的原因有幾個(gè):
- 沒有安裝gcc嗜湃,mac自帶的是clang大部分的源碼是可以編譯通過的奈应,但是部分不行;
- 沒有安裝Xcode command line tools導(dǎo)致缺少了c++的頭文件购披;
- 沒有指定使用gcc去編譯杖挣,需要配置~/.R/Makevars去實(shí)現(xiàn);
- gfortan沒有制定刚陡,通過軟鏈解決惩妇。