You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止R与devtools重复下载系统中已安装的tar/tgz包及外部依赖

问题1解答

CRAN官方提供的macOS版R默认会内置独立的Homebrew实例,安装包时如果检测到依赖缺失会优先用这个内置实例下载安装,和你单独安装的全局Homebrew完全独立、互不关联,确实会出现重复安装的情况,默认不会互相调用。

问题2解答

你提到的修改PATH的思路是可行的,配合R专属配置可以实现优先调用本地全局Homebrew,操作步骤如下:

  • 首先确认你自己安装的Homebrew路径:Intel芯片Mac默认路径为/usr/local,Apple Silicon芯片Mac默认路径为/opt/homebrew
  • 新建/编辑R编译配置文件~/.R/Makevars,添加以下内容(注意替换为对应芯片的Homebrew路径):
BREW = /opt/homebrew/bin/brew
PKG_CONFIG_PATH = /opt/homebrew/lib/pkgconfig
CFLAGS += -I/opt/homebrew/include
LDFLAGS += -L/opt/homebrew/lib
  • 新建/编辑R启动配置文件~/.Rprofile,添加以下内容修改R的默认PATH优先级:
# 优先读取全局Homebrew路径
Sys.setenv(PATH = paste("/opt/homebrew/bin", Sys.getenv("PATH"), sep = ":"))

保存后重启R/RStudio即可生效,后续安装R包时会优先检索你本地安装的Homebrew依赖,不会重复下载内置版本。

问题3解答

默认状态下内置Homebrew的依赖和全局Homebrew的依赖不互通,R包只会优先读取内置实例的依赖。完成上述配置后即可实现依赖互通,比如你提前用全局Homebrew安装了tesseract,后续安装R的tesseract包时就会直接调用全局的tesseract程序和依赖,不会重复安装。

Tesseract语言包问题解决

要避免R的tesseract包自动下载全量语言包,只需在~/.Rprofile中额外添加一行配置,指定语言包路径指向你全局Homebrew安装的tessdata目录即可:

# 替换为对应芯片的Homebrew tessdata路径
Sys.setenv(TESSDATA_PREFIX = "/opt/homebrew/share/tessdata/")

重启R后即可生效,R会直接读取你通过Homebrew安装的指定语言包,不会额外下载冗余文件。


内容的提问来源于stack exchange,提问作者Pier-Eric Chamberland

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 08:45:03