slappasswd: lỗi tra cứu biểu tượng không xác định biểu tượng ber_sockbuf_io_udp


0

Tôi có CentOS 7 ( 3.10.0-693.el7.x86_64) từ Pivotal Greenplum Sandbox VM.

Tôi đã cố gắng cài đặt OpenLDAP:

sudo yum install openldap openldap-servers openldap-clients -y 

Nhưng khi tôi chạy slappasswd -s mypassword, tôi gặp một lỗi kỳ lạ dưới đây:

slappasswd: symbol lookup error: slappasswd: undefined symbol: ber_sockbuf_io_udp

Tôi chưa thấy điều này ở bất cứ đâu ngay cả khi tôi sử dụng Centos 7 trống từ đầu.

Vì vậy, những gì gây ra slappasswdđể phá vỡ và làm thế nào để khắc phục nó?

CẬP NHẬT 1

Tôi đã thực hiện ldd /usr/sbin/slappasswdvà đây là đầu ra:

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)

Câu trả lời:


1

Thực thi của bạn có thể liên kết đến thư viện sai.

Bạn có thể sử dụng ldd /<insert path to slappasswd here>/slappasswd để tìm ra thư viện động nào được kéo vào. Sử dụng ví dụ whereis slappasswdđể tìm đường dẫn của nó.

Có một cái nhìn ở đây nơi một trường hợp như vậy được mô tả.

Cập nhật:

Thay đổi thứ tự thư mục trên đường dẫn LD đã giải quyết vấn đề cho @HP.:

export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH

Tôi đã cập nhật câu hỏi với kết quả từ ldd. Vì vậy, tôi đoán bạn đúng. /usr/local/greenplum-db/./libThay vào đó, một loạt trong số họ đang chỉ vào. Làm thế nào để tôi sửa nó?
HP.

1
Bạn đã viết bạn sử dụng máy ảo Sandbox Greenplum Sandbox. Vì vậy, sự sắp xếp có thể có chủ đích. Nếu bạn đổi tên /usr/local/greenplum-db/libthành /usr/local/greenplum-db/lib.oldnó có thể dẫn đến hoạt động slappasswdnhưng cài đặt Greenplum bị hỏng. Nếu bạn cần cả hai hoạt động, tôi sẽ cố gắng nhận được sự hỗ trợ từ những người ở Greenplum, có thể việc cài đặt gói OpenLDAP bổ sung không phải là bước thích hợp ở đây.
mvw

Tôi phát hiện ra việc này đã làm các trick export LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH. Nếu bạn thêm vào câu trả lời, tôi có thể chấp nhận nó. Cảm ơn các gợi ý.
HP.

Vui mừng khi biết bạn có thể giải quyết vấn đề của bạn.
mvw
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.