R4.2.0通过BiocManager安装edgeR包报错的解决方案咨询
问题原因
- 原安装代码存在语法错误:
install.packages("BiocManager"缺失闭合右括号,分号位置错误,会导致命令执行逻辑异常。 - 你使用的R 4.2版本未提供Apple Silicon(arm64/big-sur-arm64)架构的edgeR预编译二进制包,必须从源码编译安装,编译需要完整的C/C++/Fortran编译环境。
- 系统缺少适配arm64架构的gfortran编译器及对应链接路径配置,导致链接阶段找不到
-lgfortran库,编译失败。
修复方案
方案1:升级R版本(最省事,无需编译)
直接将本地R升级到4.3及以上正式版本,新版本Bioconductor仓库已经提供适配arm64架构的预编译edgeR二进制包,安装时不需要源码编译,也不会触发Fortran编译报错。升级完成后重启R/RStudio,运行如下修正后的安装代码即可:
if (!require("BiocManager", quietly = TRUE)) { install.packages("BiocManager") } BiocManager::install("edgeR")
方案2:保留现有R 4.2版本,补全编译环境后源码安装
如果不想升级R,按以下步骤补全依赖后安装:
- 安装基础编译工具,打开终端执行如下命令,按弹窗提示完成Xcode命令行工具安装:
sudo xcode-select --install - 安装arm64版本的gfortran编译器,终端执行Homebrew命令安装gcc(包含gfortran组件):
brew install gcc - 配置R的编译链接路径,打开本地用户目录下的
.R文件夹,新建或编辑Makevars文件,写入如下配置(对应Homebrew安装的gcc路径):FLIBS=-L/opt/homebrew/opt/gcc/lib/gcc/current -lgfortran -lquadmath -lm - 完全关闭重启R/RStudio,运行如下修正后的安装代码,即可自动完成源码编译安装:
if (!require("BiocManager", quietly = TRUE)) { install.packages("BiocManager") } # 关闭交互弹窗,自动确认源码编译安装 options(install.packages.compile.from.source = "always") BiocManager::install("edgeR", ask = FALSE)
安装验证
安装完成后运行library(edgeR),无报错提示即为安装成功。
内容的提问来源于stack exchange,提问作者fisheryu2022
相关产品推荐
相关产品推荐

