R Markdown突然无法knit 提示需更新stringi包安装失败如何解决
问题诊断
核心问题是stringi包实际并未安装成功,你看到的「安装成功」提示和「non-zero exit status」报错存在矛盾,本质是预编译的stringi二进制包和你当前的macOS 12.4 + R 4.2.1环境存在兼容问题,安装过程中途失败,没有生成可正常加载的包文件。从你贴的sessionInfo()输出也能验证:已加载的命名空间里完全没有stringi,rmarkdown/knitr渲染时找不到可用的stringi,才会弹出要求更新stringi的提示。
你之前重装R/RStudio、更新rmarkdown/xfun的操作都没有解决核心的stringi安装失败问题,自然不会生效。
解决步骤
按顺序执行,每步完成后可尝试knit文档验证:
- 清理残留损坏包
完全退出R和RStudio,打开系统终端执行以下命令,彻底删除所有残留的损坏stringi文件:
如果提示权限不足,在命令前加R CMD REMOVE stringisudo,输入本机开机密码执行即可。 - 安装编译依赖
如果你从未安装过Xcode命令行工具,在终端执行以下命令完成安装,这是R在macOS环境下编译源码包的必需依赖:
弹出安装引导窗口后按提示完成安装,等待流程结束再进行下一步。xcode-select --install - 源码编译安装stringi
重新打开R/RStudio,执行以下命令从源码编译安装stringi,绕开兼容性有问题的预编译二进制包:
安装完成后执行install.packages("stringi", type = "source", configure.args = "--disable-pkg-config")library(stringi)验证,如果没有报错弹出,说明包已经正常安装,此时再knit文档即可恢复正常。 - 权限问题排查(上述步骤无效时执行)
在R中执行.libPaths()查看R包的存储路径,打开对应文件夹检查当前系统用户是否对该路径有完整读写权限,如果权限不足,给对应文件夹开放当前用户的读写权限后,重新执行前面的清理、安装步骤即可。
验证方法
安装完成后重启R,执行sessionInfo(),如果输出的「loaded via a namespace」列表中能看到stringi及对应版本号,说明包已正常加载,故障排除。
内容的提问来源于stack exchange,提问作者Hussain Hadah
相关产品推荐
相关产品推荐

