macOS下R从R-universe安装terra开发版报gdal-config缺失错误
问题根因
报错核心是R在源码编译terra的配置阶段,无法在默认搜索路径定位到gdal-config可执行文件。你已安装GDAL 3.5.0但仍报错,是因为arm64架构Mac上通过Homebrew安装的程序默认存放在/opt/homebrew/bin目录,该路径默认不在R编译流程的搜索路径范围内,导致配置脚本找不到对应文件。
前置排查
- 在终端执行
which gdal-config,确认文件实际存放路径:arm64 Mac通过Homebrew安装的默认路径为/opt/homebrew/bin/gdal-config,Intel芯片Mac默认路径为/usr/local/bin/gdal-config - 如果终端执行上述命令无输出,说明当前安装的GDAL缺少开发组件,需在终端执行
brew install gdal安装完整版本后再继续操作
解决方法
方案1:单次会话临时指定路径
在R中先配置当前会话的环境变量,再执行安装,命令如下(注意把路径替换成你自己排查得到的gdal-config所在目录,不要带文件名本身):
Sys.setenv(PATH = paste0("/opt/homebrew/bin:", Sys.getenv("PATH"))) install.packages('terra', repos='https://rspatial.r-universe.dev')
方案2:永久配置R环境变量
如果需要长期生效,可将路径写入R的环境配置文件:
- 在R中执行
file.edit("~/.Renviron")打开配置文件 - 新增如下行内容,路径替换为你实际查到的gdal-config所在目录:
PATH=/opt/homebrew/bin:${PATH}
- 保存文件后完全重启R,再执行正常安装命令即可。
方案3:安装时直接指定gdal-config完整路径
如果上述配置仍不生效,可在安装命令中直接通过编译参数指定gdal-config的完整路径:
install.packages( 'terra', repos = 'https://rspatial.r-universe.dev', configure.args = "--with-gdal-config=/opt/homebrew/bin/gdal-config" )
注意:需保证安装的GDAL架构和R的架构一致,如果你通过Rosetta转译的终端安装了x86版本GDAL,会触发架构不匹配的编译错误,此时需卸载x86版本GDAL,使用原生arm64架构终端重新安装对应版本即可。
内容的提问来源于stack exchange,提问作者bird
相关产品推荐
相关产品推荐

