svn:符号查找错误:/lib64/libldap_r-2.4.so.2:未定义的符号:Redhat上的ber_sockbuf_io_udp

问题描述

Red Hat Enterprise Linux 8.2版(Ootpa)

我们的linux管理员安装了subversion-不确定最新版本。

在运行svn(仅键入svn时)时,出现以下错误

svn: symbol lookup error: /lib64/libldap_r-2.4.so.2: undefined symbol: ber_sockbuf_io_udp

这是为什么?该如何解决

我是Linux用户,不是管理员

谢谢

解决方法

这里的类似主题:https://unix.stackexchange.com/questions/193320/yum-corrupted-on-rhel-6

就我而言(RHEL7.8 + Apache 2.4 + Shibboleth 3.2),我能够通过将 /usr/lib64/libldap_r-2.4.so.2 库替换为 Apache 目录中的库来解决该问题:<APACHE_ROOT>/HTTPServer/openldap/lib/libldap_r-2.4.so.2

运行: locate libldap_r-2.4.so.2 找到图书馆的位置。 就我而言,我得到了:

/app/ptc/Windchill_12.0/HTTPServer/openldap/lib/libldap_r-2.4.so.2
/app/ptc/Windchill_12.0/HTTPServer/openldap/lib/libldap_r-2.4.so.2.10.12
/usr/lib/libldap_r-2.4.so.2
/usr/lib/libldap_r-2.4.so.2.10.7
/usr/lib64/libldap_r-2.4.so.2
/usr/lib64/libldap_r-2.4.so.2.10.7

我注意到错误中使用的库位于 /usr/lib64 目录中。 我更换了它,现在 ./apachectl -t 报告 “语法正常”

我对 Linux 的了解不够,无法解释这里发生了什么或正确的修复方法是什么。 这是我的观察并解决了问题,但我相信我的步骤是一个黑客。

有人有更优雅的升级证明解决方案吗?

参考:https://groups.google.com/g/repmgr/c/TS7QfYEoNoY

cd /usr/lib64/
ll | grep libldap
lrwxrwxrwx.  1 root root       21 Feb 11 16:42 libldap-2.4.so.2 -> libldap-2.4.so.2.10.7
-rwxr-xr-x.  1 root root   352512 Jun  6  2020 libldap-2.4.so.2.10.7
lrwxrwxrwx.  1 root root       23 Feb 11 16:42 libldap_r-2.4.so.2 -> libldap_r-2.4.so.2.10.7
-rwxr-xr-x.  1 root root   381328 Jun  6  2020 libldap_r-2.4.so.2.10.7

似乎 /usr/lib64/libldap_r2.4.so.2 只是指向 libldap_r-2.4.so.2.10.7 的符号链接。

我想知道 2.10.7 中是否有缺失或弃用的符号... 有什么办法可以区分这两个版本的差异吗?

更新 我注意到您可以在 Apache conf 中使用 LoadFile 命令。 在 LoadFile <APACHE_ROOT>/HTTPServer/openldap/lib/libldap_r-2.4.so.2 条目之前在我的 00-shib.conf 文件中添加 LoadModule mod_shib /usr/lib64/shibboleth/mod_shib_24.so 解决了问题。

这对我来说似乎仍然是一种解决方法/hack,并且库/不同版本可能存在潜在问题。