../lib/libc.so.6:找不到版本“GLIBC_2.12”

../lib/libc.so.6:找不到版本“GLIBC_2.12”

我正在运行 debian wheezy (7.8) 盒子,我刚刚遇到了需要“GLIBC_2.12”的应用程序的问题。

glibc 链接对我来说似乎很混乱。也许有人可以启发我?

程序使用了libldap,它似乎依赖于libc。当我运行应用程序时,我得到

/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 应该使用 /lib/x86_64-linux-gnu/libc.so.6,它是版本 2.13 的符号链接:

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

根据aptlibc应该是2.13版本。

相关内容