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

Ubuntu24.04下RCall.jl加载SET_SYMVALUE符号失败报错求助

问题:Ubuntu 24.04 下 Julia 1.11.4 + R 4.5.0 加载 RCall 时出现 "SET_SYMVALUE" 未定义错误

环境信息

  • 系统:Ubuntu 24.04
  • Julia 版本:1.11.4
  • R 版本:4.5.0
  • RCall 版本:对应本地路径 ~/.julia/packages/RCall/0ggIQ(旧版本)

错误详情

执行 using RCall 时触发如下错误:

julia> using RCall
ERROR: InitError: could not load symbol "SET_SYMVALUE": /usr/lib/R/lib/libR.so: undefined symbol: SET_SYMVALUE
Stacktrace:
  [1] set_last_value(s::Ptr{RCall.NilSxp})
    @ RCall ~/.julia/packages/RCall/0ggIQ/src/methods.jl:589
  [2] reval_p(expr::Ptr{RCall.ExprSxp}, env::Ptr{RCall.EnvSxp})
    @ RCall ~/.julia/packages/RCall/0ggIQ/src/eval.jl:126
  [3] reval(r::RCall.RObject{RCall.ExprSxp}, env::RCall.RObject{RCall.EnvSxp})
    @ RCall ~/.julia/packages/RCall/0ggIQ/src/eval.jl:135
  [4] set_hook(hookname::String, value::RCall.RObject{RCall.LangSxp})
    @ RCall ~/.julia/packages/RCall/0ggIQ/src/eventloop.jl:72
  [5] rgui_init()
    @ RCall ~/.julia/packages/RCall/0ggIQ/src/eventloop.jl:77
  [6] __init__()
    @ RCall ~/.julia/packages/RCall/0ggIQ/src/setup.jl:211
  [7] run_module_init(mod::Module, i::Int64)
    @ Base ./loading.jl:1378
  [8] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
    @ Base ./loading.jl:1366
  [9] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{…}, ignore_native::Nothing; register::Bool)
    @ Base ./loading.jl:1254
 [10] _include_from_serialized (repeats 2 times)
    @ ./loading.jl:1210 [inlined]
 [11] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{…}, DEPOT_PATH::Vector{…})
    @ Base ./loading.jl:2057
 [12] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:2527
 [13] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2388
 [14] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [15] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [16] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2375
 [17] macro expansion
    @ ./loading.jl:2314 [inlined]
 [18] macro expansion
    @ ./lock.jl:273 [inlined]
 [19] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2271
 [20] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [21] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [22] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2260
during initialization of module RCall 
Some type information was truncated. Use `show(err)` to see complete types.

附加问题:$ 命令无法使用,无法调用 R REPL;已尝试重新定义 R_HOME,无效。


解决方案

1. 更新 RCall 到最新兼容版本

打开 Julia REPL,执行:

using Pkg
Pkg.update("RCall")
Pkg.build("RCall")

2. 安装开发版 RCall(若稳定版未适配)

如果最新稳定版仍不支持 R 4.5.0,直接安装 GitHub 开发分支:

using Pkg
Pkg.add(url="https://github.com/JuliaInterop/RCall.jl")
Pkg.build("RCall")

3. 验证并修复 R 环境变量

确保 R_HOME 指向正确路径(Ubuntu 默认是 /usr/lib/R),执行:

ENV["R_HOME"] = "/usr/lib/R"
Pkg.build("RCall")

重启 Julia 后再尝试 using RCall。

4. 补全 R 开发依赖

确保 R 安装了完整的开发包,避免链接错误:

sudo apt-get install r-base-dev

5. 清除旧缓存并重建

若存在残留编译缓存,彻底移除后重新安装:

using Pkg
Pkg.rm("RCall")
Pkg.add("RCall")
Pkg.build("RCall")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:59:51