Manjaro Linux下V8 R包引发R会话终止问题求助
解决Manjaro Linux下Shiny应用因V8包崩溃R会话的问题
刚切换到Manjaro Linux就踩了个坑:用shinyjs::extendedjs()的Shiny应用一启动就直接崩,R弹出提示**“R遇到致命错误,会话已终止”**。折腾半天后定位到问题根源——V8 R包,哪怕在纯R控制台(非RStudio)运行相关代码,也会触发同样的崩溃,还能看到对应的错误追踪信息。
我的环境信息:
- 系统已安装V8版本:3.1.14(编译R的V8包时用的就是这个版本)
亲测有效的临时解决方案
我已经搞定了临时修复办法,分享给同样踩坑的朋友:
- 先彻底卸载当前的V8 R包:
remove.packages("V8") - Manjaro下确保系统依赖的V8版本和编译时一致:
sudo pacman -S v8-3.14 - 重新安装V8 R包,指定绑定系统V8库的路径,避免自动适配不兼容的版本:
install.packages("V8", configure.args = "--with-v8-lib=/usr/lib/libv8.so.3.14") - 验证安装是否成功:
完成以上步骤后再启动Shiny应用,就不会出现会话崩溃的问题了。library(V8) # 简单测试V8引擎是否正常工作 ctx <- v8() cat(ctx$eval("2 * 5"), "\n") # 输出10说明没问题
问题深层原因
Manjaro软件源的V8版本更新较快,R的V8包编译时虽然指定了旧版系统V8,但运行时可能会误调用系统中更新的V8库,导致版本兼容性冲突,触发内存错误直接终止R会话。通过指定编译参数绑定固定的系统V8版本,就能规避这种库调用冲突。
内容的提问来源于stack exchange,提问作者magasr
相关产品推荐
相关产品推荐

