You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M2环境下R 4.2.2加载affy包失败问题求助

加载affy包失败的原因及解决方法(Mac M2 + R 4.2.2)

报错信息

> library(affy)
Error: package or namespace load failed for ‘affy’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library/preprocessCore/libs/preprocessCore.so':
  dlopen(/Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library/preprocessCore/libs/preprocessCore.so, 0x0006): Library not loaded: '/opt/R/arm64/gfortran/lib/libgfortran.5.dylib'
  Referenced from: '/Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library/preprocessCore/libs/preprocessCore.so'
  Reason: tried: '/opt/R/arm64/gfortran/lib/libgfortran.5.dylib' (no such file), '/usr/local/lib/libgfortran.5.dylib' (no such file), '/usr/lib/libgfortran.5.dylib' (no such file)

正常加载的包日志

> library(BiocManager)
Bioconductor version 3.16 (BiocManager 1.30.19), R 4.2.2 (2022-10-31)
> library('limma')
> library('GEOquery')
Loading required package: Biobase
Loading required package: BiocGenerics

Attaching package: ‘BiocGenerics’

The following object is masked from ‘package:limma’:

    plotMA

The following objects are masked from ‘package:stats’:

    IQR, mad, sd, var, xtabs

The following objects are masked from ‘package:base’:

    anyDuplicated, aperm, append, as.data.frame, basename, cbind, colnames, dirname, do.call, duplicated,
    eval, evalq, Filter, Find, get, grep, grepl, intersect, is.unsorted, lapply, Map, mapply, match, mget,
    order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank, rbind, Reduce, rownames, sapply, setdiff,
    sort, table, tapply, union, unique, unsplit, which.max, which.min

Welcome to Bioconductor

    Vignettes contain introductory material; view with 'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.

Setting options('download.file.method.GEOquery'='auto')
Setting options('GEOquery.inmemory.gpl'=FALSE)

环境与已执行操作

  • 环境:Mac M2芯片,R版本4.2.2
  • 已执行操作:
    • 删除/Library/Frameworks/R.framework/Resources/library路径下的affy文件夹后重装,仍报错;BiocManager、limma、GEOquery可正常加载。
    • 检查并更新所有包至最新版本。
    • 成功安装haven包。

原因分析

加载失败的核心问题是系统缺少适配arm64架构的gfortran运行库libgfortran.5.dylib。affy包依赖preprocessCore包,而preprocessCore编译时需要链接该库,但你的M2芯片系统在指定路径中找不到这个库,导致无法加载对应的共享对象文件。

解决步骤

  1. 安装适配arm64的gfortran库
    打开终端,通过Homebrew安装gcc套件(包含所需gfortran库):
    brew install gcc
    
  2. 重建preprocessCore包
    先卸载现有包,再重新安装以确保链接到新库:
    remove.packages("preprocessCore")
    BiocManager::install("preprocessCore")
    
  3. 重新加载affy包
    library(affy)
    

若上述步骤无效,可尝试:

  • 用sessionInfo()确认R是arm64版本,避免混用x86_64架构的包。
  • 强制清理缓存并重装affy及依赖:
    BiocManager::install("affy", force = TRUE, clean = TRUE)
    

内容的提问来源于stack exchange,提问作者nikkikki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:45:28