安装Bioconductor包DESeq2时gfortran无法执行f951报错求解
报错原因
- R运行环境未将
/opt/R/arm64/bin纳入系统PATH搜索路径:gfortran调用f951时仅会搜索PATH变量内的目录,路径缺失时即使文件存在也无法被定位 - f951缺少可执行权限:文件权限配置错误时,系统会拒绝执行对应二进制文件,触发找不到文件的报错
- 架构不兼容:安装的gfortran工具链架构和当前R的运行架构不匹配,比如arm64架构的设备安装了x86版本的gfortran,会导致二进制文件无法被正常识别执行
解决方法
按优先级依次尝试以下操作:
- 临时为R会话添加搜索路径,在R控制台执行以下命令后重新安装DESeq2即可:
Sys.setenv(PATH = paste("/opt/R/arm64/bin", Sys.getenv("PATH"), sep = ":")) if (!require("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("DESeq2")
- 永久添加路径到系统环境变量
如果是MacOS的zsh终端,执行以下操作:
- 终端运行
nano ~/.zshrc打开配置文件 - 在文件末尾添加一行:
export PATH="/opt/R/arm64/bin:$PATH" - 按
Ctrl+O保存,Ctrl+X退出编辑器,再运行source ~/.zshrc使配置生效 - 重启R后重新执行安装命令
- 修正f951的可执行权限
终端运行以下命令为f951添加可执行权限:chmod +x /opt/R/arm64/bin/f951
执行后回到R重新安装即可 - 核对架构兼容性
- 终端运行
file /opt/R/arm64/bin/gfortran,确认输出包含arm64标识 - R控制台运行
R.version$arch,确认输出为aarch64或arm64 - 两者架构不一致时,卸载当前gfortran版本,安装和R架构匹配的工具链即可
内容的提问来源于stack exchange,提问作者Yihan Shi
相关产品推荐
相关产品推荐

