[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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

or

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.1.2.3.3 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
          Florian   |


Reply to: