美文网首页
如何在MAC M1芯片上安装R的Bioconductor包

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

作者: xizzy | 来源:发表于2021-12-30 00:13 被阅读0次

    苹果的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包

          本文链接:https://www.haomeiwen.com/subject/zzibqrtx.html