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

苹果的m1芯片已经出到了第二代的m1pro/max版本了,不少同学也是用上了新的macbook,m1芯片的优点我们已经有目共睹。虽然新版本的R的新版本和cran上的标准包如ggplot2等也已经原生的支持了m1。但是Bioconductor的包或者一些github上的包还是需要我们通过编译安装的方式进行的。

对于m1的电脑,当我们尝试用过BiocManager::install()进行安装时,部分包会出现提示错误。下面我以DESeq2包为例,尝试直接安装提示错误:

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

这里需要我们确认好三件事情:
1.正确的安装好gcc,终端输入gcc看看是否有改命令,如果没有通过命令brew install gcc安装;
2.正确的安装好gfortran,如果没有安装好通过命令brew install gfortran进行安装。
3.安装Xcode command line tools,终端输入xcode-select --install

接下来就是重点操作了:

首先查看一下gcc的路径,用 brew list gcc命令进行查看:

查看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需要和你上面的路径对应!!VER=-11这个数字取决于你的gcc版本!!
将安装的gfortran的路径链到R目录:
sudo ln -s /opt/homebrew/bin/gfortran /opt/R/arm64/bin/
这个时候我们重新安装,最好在命令行用R安装,用rstudio有时候会出现莫名错误!!

安装成功

就可以顺利安装了。

总结:

导致安装失败的原因有几个:

  1. 没有安装gcc,mac自带的是clang大部分的源码是可以编译通过的,但是部分不行;
  2. 没有安装Xcode command line tools导致缺少了c++的头文件;
  3. 没有指定使用gcc去编译,需要配置~/.R/Makevars去实现;
  4. gfortan没有制定,通过软链解决。

想了解更多?还不赶快关注我,以及我的公众号生信咖啡吗?

你可能感兴趣的:(如何在MAC M1芯片上安装R的Bioconductor包)