RStudio加载edgeR因libgfortran.5.dylib失败,但Base R可正常运行
RStudio中edgeR包加载失败的解决方法
问题概述
已通过BiocManager::install("edgeR")成功安装edgeR包,但在RStudio中执行library(edgeR)时,出现libgfortran.5.dylib缺失错误,提示找不到/opt/gfortran/lib/gcc/aarch64-apple-darwin20.0/12.2.0/libgfortran.5.dylib;但在Mac终端或RStudio内置终端启动R后,可正常加载并使用edgeR。
当前环境:
- macOS Ventura 13.3.1(arm64架构)
- R 4.3.0(arm64)
- 通过arm64版Homebrew安装gcc/gfortran,已配置
~/.R/Makevars:
CC=gcc-13 CXX=g++-13 FLIBS =-L/usr/local/gfortran/lib F77 = /usr/local/gfortran/bin/gfortran FC = /usr/local/gfortran/bin/gfortran
解决方案
方案1:重新编译edgeR包(推荐)
edgeR当前的二进制包链接的是/opt/gfortran路径下的库,但你的gfortran安装在/usr/local/gfortran,所以需要从源码重新编译安装:
- 卸载现有edgeR包:
remove.packages("edgeR")
- 确保
~/.R/Makevars配置正确(保持你现有的内容即可); - 在RStudio中执行源码安装:
BiocManager::install("edgeR", type = "source")
安装完成后再尝试library(edgeR)。
方案2:手动添加gfortran库路径到RStudio环境
如果重新编译无效,可临时或永久添加库路径:
- 临时生效:在RStudio控制台执行:
Sys.setenv(DYLD_LIBRARY_PATH = "/usr/local/gfortran/lib:$DYLD_LIBRARY_PATH") library(edgeR)
- 永久生效:编辑
~/.Renviron文件(若不存在则新建),添加一行:
DYLD_LIBRARY_PATH="/usr/local/gfortran/lib:$DYLD_LIBRARY_PATH"
保存后重启RStudio即可。
方案3:确认RStudio使用的R版本
检查RStudio与终端使用的R版本是否一致:
- RStudio中执行:
R.home() - 终端R中执行:
R.home()
若路径不同,在RStudio的Tools -> Global Options -> General中选择终端对应的arm64版R。
内容的提问来源于stack exchange,提问作者Said
相关产品推荐
相关产品推荐

