You need to enable JavaScript to run this app. M1 Big Sur Mac运行R extrafont时提示找不到GhostScript如何解决
优惠活动
大模型
产品
解决方案
定价
更多

M1 Big Sur Mac运行R extrafont时提示找不到GhostScript如何解决

报错核心触发原因
  • M1架构Mac上,Homebrew默认安装路径与x86版本Mac存在差异,R/RStudio进程不会自动读取zsh配置文件中的环境变量,无法定位Ghostscript可执行文件
  • R/RStudio与Ghostscript的架构不匹配:如果R通过Rosetta转译运行,默认安装的ARM原生Ghostscript无法被识别调用
  • 切换zsh shell后,原bash配置文件中的PATH设置对RStudio启动的进程不生效,进一步加剧路径识别失败
可落地修复步骤

1. 定位Ghostscript实际安装路径

打开终端执行命令:
which gs
拿到输出的可执行文件路径即可。M1原生架构Mac的Homebrew默认安装路径通常为/opt/homebrew/bin/gs,与x86机型的/usr/local/bin/gs路径不同,如果which gs无返回,可手动到上述两个路径下检查gs文件是否存在。

2. 校准R/RStudio与Ghostscript的架构匹配度

  • 在访达的应用目录找到RStudio,右键选择「显示简介」,检查是否勾选「使用Rosetta打开」
  • 打开终端执行arch查看当前终端输出的架构标识:如果终端输出arm64,说明当前运行的是ARM原生版本的Ghostscript,此时需要取消RStudio的Rosetta勾选,让R/RStudio以原生ARM模式运行;如果R必须通过Rosetta兼容x86流程运行,则需要安装x86版本的Ghostscript,避免架构不兼容导致的识别失败。

3. 手动为R绑定Ghostscript路径(绕开shell环境变量影响)

该步骤完全不受bash/zsh切换的影响,是最稳定的解决方式:

  • 在RStudio控制台执行命令打开全局R配置文件:
    file.edit("~/.Rprofile")
  • 在打开的配置文件中添加一行环境变量配置,将路径替换为你第一步拿到的实际gs路径:
    Sys.setenv(R_GSCMD = "/opt/homebrew/bin/gs")
  • 保存配置文件后,完全退出并重启RStudio,不要仅重启当前R会话。

4. 验证修复效果

  • 在R控制台执行Sys.getenv("R_GSCMD"),确认返回的路径与你手动配置的路径完全一致
  • 重新运行你的示例绘图、PDF导出、embed_fonts()全流程,测试报错是否消失
避坑提示
  • 反复重装extrafont、extrafontdb包无法解决该问题:这两个包的功能逻辑不涉及Ghostscript的路径识别流程,报错根源是R找不到GS可执行文件,与字体导入流程无关
  • 如果配置路径后仍报错,可给gs可执行文件补充执行权限,在终端执行:
    chmod +x /opt/homebrew/bin/gs
  • 无需为了解决该问题把默认shell从zsh切回bash,通过.Rprofile写死路径的方式可以完全绕开shell配置的影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 18:36:04