macOS升级后R安装tidyverse、processx包报错error code 1咨询
问题诊断
报错核心触发点是警告里的l'exécution de la commande ''/Library/Frameworks/R.framework/Resources/bin/R' CMD config CC 2>&1' renvoie un statut 1,即R无法找到可用的C编译器,所有需要本地编译C源码的R包(processx、callr等)都会安装失败;不需要本地编译的预编译二进制包(如你提到的ggplot2)可正常安装。
这个问题是macOS升级到Monterey、R升级到4.2.0后的典型兼容问题:macOS系统升级会作废原有Xcode命令行工具的签名,而R 4.2.0版本不再内置独立的clang编译工具链,直接调用系统层面的C编译器,编译器路径失效后就会触发该报错。重装R/RStudio不会修复系统层面的编译器配置,所以之前的重装操作无效。
修复步骤
按顺序操作:
- 重装Xcode命令行工具,打开macOS终端执行以下命令:
执行后会弹出系统安装引导窗口,按提示完成安装,安装过程不要断网。sudo rm -rf /Library/Developer/CommandLineTools xcode-select --install - 验证编译器配置,安装完成后在终端执行:
正常执行会返回/Library/Frameworks/R.framework/Resources/bin/R CMD config CC/usr/bin/clang,不再返回状态1错误。 - 清理失效的包缓存后重装依赖,打开R/RStudio执行:
如果安装时提示权限/锁文件错误,找到R包库存放路径,删除所有# 如果你使用renv管理项目环境,先执行下面两行清缓存 # renv::purge("processx") # renv::purge("callr") install.packages("processx", type = "binary") install.packages("callr", type = "binary")00LOCK-开头的文件夹后重试。 - 依赖安装完成后,重新执行tidyverse安装命令即可:
install.packages("tidyverse")
兜底方案
如果完成上述步骤后仍报CC配置错误,在R中执行以下命令手动指定编译器路径后再安装包:
Sys.setenv(CC = "/usr/bin/clang") Sys.setenv(CXX = "/usr/bin/clang++")
需要长期生效的话,把这两行配置写入用户目录下的.Rprofile文件即可。
内容的提问来源于stack exchange,提问作者Virgile Korsec
相关产品推荐
相关产品推荐

