3.10.0-693.el7.x86_64
我有来自 Pivotal Greenplum Sandbox VM 的CentOS 7( )。
我尝试安装 OpenLDAP:
sudo yum install openldap openldap-servers openldap-clients -y
但是当我运行时slappasswd -s mypassword
,出现下面一个奇怪的错误:
slappasswd: symbol lookup error: slappasswd: undefined symbol: ber_sockbuf_io_udp
即使我从头开始使用空白的 Centos 7,我也没有在任何地方看到过这种情况。
那么是什么原因导致了slappasswd
故障以及如何修复呢?
更新 1
我执行了ldd /usr/sbin/slappasswd
,这里是输出:
linux-vdso.so.1 => (0x00007ffcb7dd3000)
libldap_r-2.4.so.2 => /usr/local/greenplum-db/./lib/libldap_r-2.4.so.2 (0x00007f285ed37000)
liblber-2.4.so.2 => /usr/local/greenplum-db/./lib/liblber-2.4.so.2 (0x00007f285eb29000)
libdb-5.3.so => /lib64/libdb-5.3.so (0x00007f285e762000)
libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f285e545000)
libnss3.so => /lib64/libnss3.so (0x00007f285e21a000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f285dffe000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f285ddc7000)
libslapi-2.4.so.2 => /lib64/libslapi-2.4.so.2 (0x00007f285dba6000)
libltdl.so.7 => /lib64/libltdl.so.7 (0x00007f285d99c000)
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f285d791000)
libc.so.6 => /lib64/libc.so.6 (0x00007f285d3cd000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f285d1b3000)
libssl.so.1.0.0 => /usr/local/greenplum-db/./lib/libssl.so.1.0.0 (0x00007f285cf41000)
libcrypto.so.1.0.0 => /usr/local/greenplum-db/./lib/libcrypto.so.1.0.0 (0x00007f285caba000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f285c8b6000)
libnssutil3.so => /lib64/libnssutil3.so (0x00007f285c689000)
libplc4.so => /lib64/libplc4.so (0x00007f285c483000)
libplds4.so => /lib64/libplds4.so (0x00007f285c27f000)
libnspr4.so => /lib64/libnspr4.so (0x00007f285c041000)
/lib64/ld-linux-x86-64.so.2 (0x000056487cd59000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f285be3d000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f285bc24000)
librt.so.1 => /lib64/librt.so.1 (0x00007f285ba1b000)
答案1
您的可执行文件可能链接到错误的库。
您可以使用ldd /<insert path to slappasswd here>/slappasswd
来找出引入了哪些动态库。使用例如whereis slappasswd
来找到它的路径。
看一看这里其中描述了这种情况。
更新:
更改 LD 路径上的目录顺序确实解决了@HP 的问题:
export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH