我遇到一个问题,似乎没有找到所有必需的库。请参见下面的输出。但它们似乎已安装在我的系统上。我接下来该怎么做?(抱歉,我对 Linux 不太了解。这仅仅是在某处设置一些符号链接的问题,还是 32 位和 64 位库的问题?我该怎么做才能解决这个问题?
static:/usr/local/openemm/bin# ldd xmlback
linux-gate.so.1 => (0xf7f29000)
libxml2.so.2 => not found
libz.so.1 => not found
libm.so.6 => /lib32/libm.so.6 (0xf7efd000)
libdl.so.2 => /lib32/libdl.so.2 (0xf7ef9000)
libc.so.6 => /lib32/libc.so.6 (0xf7da6000)
/lib/ld-linux.so.2 (0xf7f2a000)
static:/usr/local/openemm/bin# find / -name libz*
/usr/lib/libz.so.1.2.3.3
/usr/lib/libz.so.1
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/amd64/libzip.so
/usr/lib/libz.so
/usr/lib/libz.a
static:/usr/local/openemm/bin# find / -name libxml2*
/usr/include/libxml2
/usr/lib/libxml2.so
/usr/lib/libxml2.so.2
/usr/lib/libxml2.so.2.6.32
/usr/lib/libxml2.la
/usr/lib/libxml2.a
/usr/lib/debug/usr/lib/libxml2.so.2.6.32
uname -a ==> SMP Sat Jan 10 17:57:00 UTC 2009 x86_64 GNU/Linux
非常感谢!!!Jens
更新:(感谢 Ignacio Vazquez-Abrams 和 Warner)
file -s /usr/lib/libz.so.1
/usr/lib/libz.so.1: symbolic link to `libz.so.1.2.3.3'
file -s /usr/lib/libz.so.1.2.3.3
/usr/lib/libz.so.1.2.3.3: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
static:/usr/local/openemm/bin# file -s /usr/lib/libxml2.so.2.6.32
/usr/lib/libxml2.so.2.6.32: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
file -s xmlback
xmlback: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
==> 似乎是 32 与 64 的冲突。如果 xmlback 是与我要安装的应用程序 (openemm.org) 一起分发的文件,我将非常感激能提供建议,告诉我我该怎么做。因此,我认为我无法替换此文件。但也许有解决方案可以使用 32 位库或某种包装器?谢谢!!
答案1
以 root 身份运行ldconfig
。