升级R/RStudio最新版后sf/terra/rgdal等R包安装失败问题
macOS下R空间类包安装报错解决方法
你碰到的三类报错分别对应下载超时、底层系统依赖缺失、二进制包架构不匹配,按以下顺序操作即可修复:
- 第一步先修正R的默认安装配置,打开R控制台运行以下命令,延长下载超时时间,强制优先安装预编译二进制包,避免自动触发源码编译:
options(timeout = 600) options(install.packages.check.source = "no") options(pkgType = "binary")
- 第二步安装系统级依赖:
sf/terra/rgdal三个空间包都依赖GDAL、GEOS、PROJ三个地理空间底层库,源码安装时报gdal-config not found就是系统缺少这些库导致的。先安装macOS包管理工具Homebrew,安装完成后打开系统终端执行以下命令安装依赖:
brew install gdal geos proj
验证依赖是否安装成功:终端执行
which gdal-config,如果返回/usr/local/bin/gdal-config(x86架构Mac的默认路径)即为正常。
- 第三步清理之前错误安装的包,在R控制台运行:
remove.packages(c("rgdal", "terra", "sf"))
你之前手动安装rgdal报mach-o, but wrong architecture错误,是因为下载的tgz安装包是适配M系列芯片的ARM架构版本,和你x86_64架构的系统不匹配,清理后不要手动下载安装包,用默认install.packages命令安装即可。
- 第四步完全关闭RStudio,重新启动时不要加载历史工作空间,直接运行安装命令:
install.packages(c("sf", "terra", "rgdal"))
- 如果安装过程中弹出“是否从源码安装”的提示,直接输入
no选择二进制版本即可,预编译的二进制包已经打包好所有依赖,不会出现编译报错。
注意事项
- 不要随意从CRAN手动下载tgz包安装,若必须手动安装,一定要确认安装包后缀匹配你的CPU架构:x86芯片选
x86_64版本,M系列芯片选arm64版本,版本不匹配就会报架构错误。 - 如果你的电脑之前通过MacPorts或其他渠道安装过GDAL,先把其他渠道的GDAL路径从系统环境变量中移除,避免和Homebrew安装的版本冲突。
- 如果安装完成后加载包报共享库链接错误,重启电脑让环境变量生效后再尝试加载。
内容的提问来源于stack exchange,提问作者FlyingDutch
相关产品推荐
相关产品推荐

