renv::restore()安装Matrix失败:编译错误求助
解决aarch64 Mac上renv恢复Matrix包时gfortran缺失的问题
核心原因
Matrix包依赖Fortran编译环境,M系列(aarch64)Mac默认未预装适配的gfortran,导致编译失败。
解决方案
1. 安装适配arm64的gfortran环境
先安装Xcode命令行工具:
xcode-select --install
通过Homebrew安装gcc(内置适配arm64的gfortran):
brew install gcc
验证安装路径(M系列Mac通常输出/opt/homebrew/bin/gfortran):
which gfortran
2. 配置R识别gfortran
有两种配置方式:
- 临时生效:在终端执行以下命令后启动R:
export FC=/opt/homebrew/bin/gfortran export F77=/opt/homebrew/bin/gfortran R - 永久生效:在用户目录下新建/编辑
.Rprofile文件,添加:Sys.setenv(FC = "/opt/homebrew/bin/gfortran") Sys.setenv(F77 = "/opt/homebrew/bin/gfortran")
3. 重新执行renv恢复
先清理失败安装的缓存:
renv::clean()
再运行恢复命令:
renv::restore()
备选方案:使用预编译二进制包
若编译仍有问题,可让renv优先用CRAN提供的arm64预编译包,跳过本地编译:
renv::settings$use.binary(TRUE) renv::restore(type = "binary")
内容的提问来源于stack exchange,提问作者Moritz Twente
相关产品推荐
相关产品推荐

