Re: libz.so.1 conflict/compatibility issue
On Thu, Oct 16, 2008 at 15:52:40 -0700, Ken Teague wrote:
> Debian Lenny
> I have a commercial application called acuSim under
> /usr/local/bin/acusim. It also installed libz.so.1.2.3 under
> /usr/local/bin/acusim/LINUX64/V1.7e/base/lib. This library is causing
> major problems on my box. For example, if I try to start Iceweasel,
> it segfaults. gnome-session spews out tons "symbol lookup error:
> /usr/lib/libxml2.so.2: undefined symbol: gzopen64" errors, as well as
> epiphiny-browser. After running "strace -eopen
> /usr/X11R6/bin/epiphany-browser 2>&1 | grep libz", I got this:
> open("tls/x86_64/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("tls/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> open('/usr/local/bin/acusim/LINUX64/V1.7e/bin/libz.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
That does not tell you which library is used in the end. I would run
ldd /usr/X11R6/bin/epiphany-browser | grep libz
ldconfig -pNX | grep libz
to find out what is going on in this kind of situation.
> So, after seeing that last line, I did the following:
> cd /usr/local/bin/acusim/LINUX64/V1.7e/bin
> mv libz.so.1 libz.so.1.orig
> After this, all of the packages that appeared to be broken started to
> work again. I could launch Iceweasel, gnome-session, epiphany-brower,
> the whole 9 yards, without a problem.
> libz.so.1, of course, is a symlink to the actual library. For my
> Debian Lenny box, it points to libz.so.188.8.131.52 and for acusim, it
> points to libz.so.1.2.3.
This does not explain what you are doing at the moment. Do you have a
symlink that you change according to which application you run next?
> My question is how can I get the two libz.so.1 files to exist and play
> nicely together? Thanks in advance.
I would check /etc/ld.so.conf and all files in /etc/ld.so.conf.d/ to see
if acuSim added its own local paths in there somewhere. If so then I
would remove all references to it and run ldconfig as root to update the
library cache. This will ensure that all Debian applications use
/usr/lib/libz.so.1 as they are supposed to do.
Then I would write a wrapper script to start up acuSim after setting
LD_LIBRARY_PATH and maybe LD_PRELOAD so that acuSim finds its own
preferred versions of libraries before it looks in the system folders
(see "man ld.so").
Regards, | http://users.icfo.es/Florian.Kulzer