macOS R4.0.2环境下安装cachem包报错(esquisse/Shiny依赖)
故障说明
- 运行环境:macOS 平台 R 4.0.2
- 故障表现:
- 安装esquisse包时触发依赖检查失败,运行测试代码提示
there is no package called ‘cachem’ - 手动单独安装cachem时,R自动选择比本地可用二进制版本更新的1.0.4源码版本,在编译环节中断,报错信息为
Error in if (nzchar(SHLIB_LIBADD)) SHLIB_LIBADD else character() : argument is of length zero,安装流程直接回滚删除已下载的包文件
- 安装esquisse包时触发依赖检查失败,运行测试代码提示
- 关联影响:cachem是Shiny生态的核心依赖库,安装失败会导致所有依赖cachem的Shiny相关包无法正常调用
根因
R 4.0.2版本的编译环境配置,与cachem 1.0.4源码包的编译参数要求存在兼容缺口,触发SHLIB_LIBADD变量为空的判断逻辑错误;本地源仓库实际存在适配当前R版本的cachem 1.0.3稳定二进制版本,无需强行编译源码版。
解决步骤
- 强制安装适配当前R版本的cachem 1.0.3二进制包,执行命令:
install.packages("cachem", version = "1.0.3", type = "binary") - 安装完成后执行
library(cachem)做加载校验,无报错即代表cachem依赖配置完成 - 重新执行esquisse包的安装命令
install.packages("esquisse"),即可跳过依赖缺失的报错环节完成安装 - 后续遇到R老版本安装包时的同类编译报错,优先选择匹配当前R版本的二进制包安装,规避源码编译路径的兼容问题
内容的提问来源于stack exchange,提问作者WestCoastProjects
相关产品推荐
相关产品推荐

