저는 debian wheezy(7.8) 상자를 실행하고 있는데 "GLIBC_2.12"가 필요한 응용 프로그램에 문제가 발생했습니다.
glibc 연결이 혼란스러워 보입니다. 누군가가 나를 깨달을 수 있을까요?
이 프로그램은 libc에 의존하는 것으로 보이는 libldap을 사용합니다. 응용 프로그램을 실행하면
/opt/ecosims/server/ecosimsserver: ../lib/libc.so.6: version `GLIBC_2.12' not found (required by /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2)
내가 설치한 패키지를 보면 libc-version 2.13이 있어야 하는 것 같습니다.
ii libc-bin 2.13-38+deb7u8 ii libc-client2007e 8:2007f~dfsg-2 ii libc-dev-bin 2.13-38+deb7u8 ii libc6:amd64 2.13-38+deb7u8 rc libc6:i386 2.13-38+deb7u8
ii libc6-dev:amd64 2.13-38+deb7u8 ii libc6-i386 2.13-38+deb7u8 rc libc6-i686:i386 2.13-38+deb7u8
'ldd /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2'의 출력은 다음을 제공합니다.
linux-vdso.so.1 => (0x00007fffa6fde000)
liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f82430a6000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f8242e90000)
libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f8242c74000)
libgnutls.so.26 => /usr/lib/x86_64-linux-gnu/libgnutls.so.26 (0x00007f82429b4000)
libgcrypt.so.11 => /lib/x86_64-linux-gnu/libgcrypt.so.11 (0x00007f8242735000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8242518000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f824218d000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8241f89000)
libtasn1.so.3 => /usr/lib/x86_64-linux-gnu/libtasn1.so.3 (0x00007f8241d77000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8241b60000)
libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f824194e000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f824174a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f824352d000)
내 경우 libldap은 버전 2.13에 대한 심볼릭 링크인 /lib/x86_64-linux-gnu/libc.so.6을 사용해야 합니다.
ls -al /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6 -> libc-2.13.so
그렇다면 왜 오류 메시지에 ../lib/libc.so.6이 언급됩니까?
아마도 관련이 있을 수 있습니다:
'ldd -v /usr/bin/gcc'는 다음과 같이 말합니다:
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8c7e0c8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8c7dd3d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8c7e371000)
Version information:
/usr/bin/gcc:
libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.11) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libm.so.6:
libc.so.6 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6:
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
GLIBC_2.11은 어디에서 왔습니까?
나는 동적 링크에 대해 잘 모른다는 점을 인정해야 합니다. 어떤 도움이나 조언이라도 좋을 것입니다!
편집: ldd -v 출력:
이것은 ldd -v ecosims의 출력입니다. 모든 게 다시 연결되는 것 같아/lib/x86_64-linux-gnu
GLIBC_2.12가 필요한 유일한 구성 요소는 libldap입니다.
./ecosimsserver:
libgcc_s.so.1 (GCC_3.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1
libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0
libgcrypt.so.11 (GCRYPT_1.2) => /lib/x86_64-linux-gnu/libgcrypt.so.11
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
libstdc++.so.6 (CXXABI_1.3) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
...
/usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2:
libgcrypt.so.11 (GCRYPT_1.2) => /lib/x86_64-linux-gnu/libgcrypt.so.11
libresolv.so.2 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libresolv.so.2
libgnutls.so.26 (GNUTLS_1_4) => /usr/lib/x86_64-linux-gnu/libgnutls.so.26
libpthread.so.0 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libpthread.so.0
libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0
libsasl2.so.2 (SASL2) => /usr/lib/x86_64-linux-gnu/libsasl2.so.2
libc.so.6 (GLIBC_2.12) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6
libc 에 따르면 apt
버전 2.13이어야 합니다.