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

Oracle Linux 8(ARM-Ampere处理器)运行EnvoyProxy时GLIBC版本缺失问题求助

Oracle Linux 8(ARM-Ampere处理器)运行EnvoyProxy时GLIBC版本缺失问题求助

我之前在Oracle Cloud的ARM-Ampere处理器上用Oracle Linux 8启动Envoy时,也碰到过一模一样的报错,折腾了好一阵才找到可行的解决办法,分享给你参考:

先明确你遇到的报错信息:

envoy: /lib64/libm.so.6: version GLIBC_2.29' not found (required by envoy) envoy: /lib64/libpthread.so.0: version GLIBC_2.30' not found (required by envoy)

这个问题的核心是Oracle Linux 8默认预装的GLIBC版本是2.28,而你当前用的Envoy二进制包是基于更高版本GLIBC编译的,导致版本不兼容。下面是几个靠谱的解决方向:

  • 使用Envoy官方的静态编译/musl版本
    很多预编译Envoy包依赖系统GLIBC,但官方也提供了不依赖系统库的静态编译版本(尤其是musl libc版本)。这类包会把所有依赖打包进去,不需要系统满足高版本GLIBC要求。你直接下载对应arm64架构的musl静态包,解压后就能直接运行,完全避开系统GLIBC版本的限制。

  • 手动编译适配当前系统GLIBC的Envoy
    如果偏好使用系统库,也可以自己编译Envoy:

    1. 先安装编译依赖:sudo dnf install gcc gcc-c++ cmake ninja-build git python3-pip
    2. 克隆Envoy源码仓库,切换到稳定的LTS版本分支
    3. 使用bazel编译时,指定适配Oracle Linux 8的编译参数,确保编译出的二进制依赖系统自带的2.28版本GLIBC。重点是让工具链对齐系统环境,具体参数可以参考官方针对RHEL8系列系统的编译指南。
  • 局部加载高版本GLIBC运行Envoy(绝对不要替换系统GLIBC)
    直接替换系统GLIBC会导致系统大部分工具崩溃,风险极高!你可以单独编译高版本GLIBC到非系统目录(比如/opt/glibc-2.30),然后通过环境变量指定临时加载这个高版本库来启动Envoy,命令示例:

    LD_LIBRARY_PATH=/opt/glibc-2.30/lib:$LD_LIBRARY_PATH ./envoy
    

    编译GLIBC时要注意用--prefix参数指定安装路径,避免覆盖系统文件。

备注:内容来源于stack exchange,提问作者sm-a

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 15:34:34