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

如何让devtools::install_github从CRAN安装依赖而非编译源码

解决GitHub R包安装时依赖httpuv的编译问题

遇到这种源码编译依赖包的麻烦确实头疼,尤其是Mac上clang的-fopenmp不兼容问题。要让devtools::install_github()优先从CRAN安装预编译的binary依赖包,而不是编译源码,你可以试试以下几种方法:

方法1:先手动安装CRAN版httpuv,再跳过依赖安装

首先确保httpuv是CRAN的预编译版本:

install.packages("httpuv", type = "binary")

type = "binary"会强制安装Mac上的预编译包,直接跳过源码编译环节。

然后安装你的GitHub包时,跳过依赖安装(因为已经手动装好了所需依赖):

devtools::install_github("你的GitHub包完整路径", dependencies = FALSE)

方法2:用remotes指定依赖安装类型

如果你不想手动逐个装依赖,可以用remotes包来统一处理依赖的安装类型:

  1. 先安装remotes(如果还没装):
install.packages("remotes")
  1. 安装包的依赖,指定从CRAN获取binary版本:
remotes::install_deps("你的GitHub包路径", type = "binary")
  1. 最后安装你的GitHub包:
devtools::install_github("你的GitHub包完整路径")

方法3:设置全局选项默认优先binary包

如果希望后续所有包安装都优先用binary版本,可以设置全局选项:

options(pkgType = "binary")

之后再运行devtools::install_github(),它会优先从CRAN获取预编译的依赖包,只有当没有binary版本可用时才会尝试源码编译。

补充说明

Mac上的clang编译器默认不支持-fopenmp编译选项,而源码版httpuv的编译会用到这个选项,这就是你遇到错误的核心原因。CRAN提供的binary版本已经提前处理了这个兼容性问题,所以直接安装binary版本就能避开编译错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:15:10