rhel 7.9 通过ocp安装odp 4.3.2.0 报错

【 使用环境 】测试环境
【 OB or 其他组件 】odp 4.3.2.0
【 使用版本 】odp 4.3.2.0
【问题描述】 rhel 7.9 通过ocp安装odp 4.3.2.0 报错
【复现路径】
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

com.oceanbase.ocp.executor.exception.HttpRequestFailedException: [AgentClient]:http request is failed, response:Execute shell command failed: failed to execute command: Command{user=admin, program=sh, outputType=combined, cmd=cd /home/admin/obproxy; ulimit -s 10240 -u 655350 -n 655350 -c unlimited; /home/admin/obproxy/bin/obproxy -p 2883 -n obproxynew -o 'server_tcp_keepcnt=2,client_tcp_keepcnt=2,client_sock_option_flag_out=3,server_tcp_keepintvl=5,client_tcp_keepidle=5,prometheus_sync_interval=1s,sock_option_flag_out=3,obproxy_config_server_url=http://10.38.14.21:8080/services?User_
ID=alibaba&UID=test&Action=GetObProxyConfig&ObproxyClusterName=obproxynew,prometheus_listen_port=2884,client_tcp_keepintvl=5,enable_metadb_used=false,skip_proxy_sys_private_check=true,log_dir_size_threshold=10G,proxy_mem_limited=2G,enable_full_username=true,enable_proxy_scramble=true,enable_strict_kernel_release=false,server_tcp_keepidle=5', timeout=10s}, exitCode: 1, output: /home/admin/obproxy/bin/obproxy: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /home/admin/obproxy/bin/obproxy)
/home/admin/obproxy/bin/obproxy: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /home/admin/obproxy/bin/obproxy)
/home/admin/obproxy/bin/obproxy: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /home/admin/obproxy/bin/obproxy)

1 个赞

根据您提供的信息,安装 ODP 4.3.2.0 时遇到的错误是由于系统中的 glibc 版本不满足 obproxy 的要求。具体来说,obproxy 需要 glibc 的版本包含 GLIBC_2.25GLIBC_2.18GLIBC_2.28,而您的 RHEL 7.9 系统中提供的 glibc 版本较低,缺少这些符号版本。

以下是详细的错误信息:

/home/admin/obproxy/bin/obproxy: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /home/admin/obproxy/bin/obproxy)
/home/admin/obproxy/bin/obproxy: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /home/admin/obproxy/bin/obproxy)
/home/admin/obproxy/bin/obproxy: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /home/admin/obproxy/bin/obproxy)

解决方案

  1. 升级 glibc

    • RHEL 7.9 默认的 glibc 版本可能不足以满足 obproxy 的需求。您可以尝试通过以下几种方式来解决这个问题:
      • 使用软件集合(Software Collections, SCL):RHEL 提供了 SCL 来安装较新的库版本而不影响系统的稳定性。您可以尝试安装较新的 glibc 版本。
      • 编译安装较新的 glibc:如果您有权限并且熟悉编译过程,可以考虑从源码编译并安装较新的 glibc 版本。但请注意,这可能会对系统的稳定性产生影响,建议在测试环境中进行。
  2. 使用兼容的操作系统

    • 如果升级 glibc 不可行或存在风险,您可以考虑将操作系统升级到更高版本,例如 RHEL 8 或更新版本,这些版本通常自带较新的 glibc 库,能够更好地支持 obproxy。
  3. 检查 OCP 和 ODP 的兼容性

    • 确认 OCP 和 ODP 的版本是否完全兼容 RHEL 7.9。有时特定版本的组件可能对操作系统的最低要求较高,确保您使用的 ODP 版本与操作系统兼容。
  4. 参考官方文档和社区支持

具体步骤

使用 Software Collections 升级 glibc

  1. 安装 SCL:

    sudo yum install centos-release-scl
    
  2. 安装较新的 glibc 版本(例如 devtoolset-10):

    sudo yum install devtoolset-10
    
  3. 启用 devtoolset-10 环境:

    scl enable devtoolset-10 bash
    
  4. 验证 glibc 版本:

    ldd --version
    

编译安装较新的 glibc

  1. 下载并解压 glibc 源码:

    wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
    tar -xvf glibc-2.28.tar.gz
    cd glibc-2.28
    
  2. 编译并安装:

    mkdir build
    cd build
    ../configure --prefix=/opt/glibc-2.28
    make -j$(nproc)
    sudo make install
    
  3. 更新动态链接器配置:

    echo "/opt/glibc-2.28/lib" | sudo tee /etc/ld.so.conf.d/glibc-2.28.conf
    sudo ldconfig
    
  4. 验证新版本:

    /opt/glibc-2.28/bin/ldd --version
    

请根据实际情况选择合适的解决方案,并在操作前备份重要数据,以防止意外情况发生。如果问题仍然无法解决,建议联系 OceanBase 的技术支持团队获取进一步帮助。

检索到的文档如下:

  1. 遇到问题如何向技术支持同学提问
  2. 4000 ~ 4499
  3. 0001 ~ 3999

麻烦按照小助手的回复安装或者升级下glibc,之后再试下