[CentOS] version GLIBC_2.0 not defined in file libpthread.so.0
Pierre Bourgin
pierre.bourgin at arteris.com
Fri Apr 20 06:06:32 UTC 2007
Bisbal, Prentice wrote:
[...]
>
> Below is the output of the commands you requested. The naviagent binary
> is 32-bit. The RPM filename has "noarch" for the architecture, and there
> is no way to specify the Linux distribution or architecture on the
> download page, so EMC must be doing the "one size fits all" thing.
>
> # file /opt/Navisphere/bin/naviagent
> /opt/Navisphere/bin/naviagent: ELF 32-bit LSB executable, Intel 80386,
> version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared
> libs), stripped
>
> # ldd /opt/Navisphere/bin/naviagent
> linux-gate.so.1 => (0xffffe000)
> libnsl.so.1 => /lib/libnsl.so.1 (0xf7fb7000)
> libdl.so.2 => /lib/libdl.so.2 (0x00495000)
> libm.so.6 => /lib/tls/libm.so.6 (0x0049b000)
> libpthread.so.0 => /lib/tls/libpthread.so.0 (0x004ca000)
> libc.so.6 => /lib/tls/libc.so.6 (0x00368000)
> /lib/ld-linux.so.2 (0x0034f000)
So you should modify $LD_LIBRARY_PATH to use the older libpthread.so,
the one from the compat-glibc package.
The output of the command below should indicate that libpthread.so.0 is
taken from the /usr/lib/i386-redhat-linux3E/lib, instead of using
/lib/tls/libpthread.so.0 :
% LD_LIBRARY_PATH=/usr/lib/i386-redhat-linux3E/lib ldd
/opt/Navisphere/bin/naviagent
[...]
libpthread.so.0 =>
/usr/lib/i386-redhat-linux3E/lib/libpthread.so.0
[...]
If this is case, you just have to write a shell wrapper script or a
shell alias to call naviagent, something like:
% chmod +x /usr/local/bin/naviagent
% cat /usr/local/bin/naviagent
#! /bin/sh
LD_LIBRARY_PATH=/usr/lib/i386-redhat-linux3E/lib
/opt/Navisphere/bin/naviagent $@
Then modify $PATH in order to call it first:
% which naviagent
/usr/local/bin/naviagent
Try so see if it's working.
You can also take a look in ld.so(8) man page and the LD_PRELOAD
environment variable if it's still no working.
Regards,
Pierre
More information about the CentOS
mailing list