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

Re: upgrading in sid



On Mon, Dec 31, 2007 at 16:31:37 -0500, charlie derr wrote:
> Thanks much for the help.
>>
>> gzopen64 should be defined in /usr/lib/libz.so.1; something is wrong
>> with this on your system. Post the output of the following commands:

[...]

> ni@delete:/var/cache/apt$ dpkg -l zlib1g

[...]

> ii  zlib1g                1:1.2.3.3.dfsg-8      compression library - runtime
> ni@delete:/var/cache/apt$
> ni@delete:/var/cache/apt$ ldd /usr/bin/gconftool-2 | grep libz
>         libz.so.1 => /usr/local/lib/libz.so.1 (0xb7be0000)
> ni@delete:/var/cache/apt$
> ni@delete:/var/cache/apt$ ldd /usr/lib/libxml2.so.2 | grep libz
>         libz.so.1 => /usr/local/lib/libz.so.1 (0xb7dc0000)
> ni@delete:/var/cache/apt$
> ni@delete:/var/cache/apt$ nm -D /usr/lib/libz.so.1 | grep gzopen64
> 00003f80 T gzopen64

You have the latest version of the zlib1g package, but you also have a
non-Debian libz.so.1 in /usr/local/lib/ (probably an older version
installed together with some non-Debian software). Until September 2007
the default behavior would have been to use the Debian library in
/usr/lib/ (therefore you might not have noticed this problem earlier),
but now the default is for /usr/local/lib/ to take precedence. You have
to get your system to use the proper file when libz.so.1 is needed. 

The most straightforward approach is to delete or to rename
/usr/local/lib/libz.so.1 and to run "ldconfig" (without arguments as
root). Afterwards you should see something like this:

$ ldconfig -pNX | grep 'libz\.so'
        libz.so.1 (libc6,x86-64) => /usr/lib64/libz.so.1
        libz.so.1 (libc6) => /usr/lib/libz.so.1
        libz.so (libc6) => /usr/lib/libz.so
$ ldd /usr/lib/libxml2.so.2 | grep libz
        libz.so.1 => /usr/lib/libz.so.1 (0xb7e43000)

This tells you that /usr/lib/libz.so.1 will be used from now on, and we
already verified that this one has gzopen64 defined (the "nm ..."
command above). This should allow you to (un)install all the currently
broken packages.

If you need to keep /usr/local/lib/libz.so.1 then you have to set
LD_LIBRARY_PATH to make sure that /usr/lib/ has a higher priority than
/usr/local/lib/. I would advise not to keep alternate versions of
Debian-provided libraries around, at least not if they have the same
soname. If you want to check which other "local" libraries might cause
problems in the future, you can run:

ldconfig -pNX | grep local

-- 
Regards,            | http://users.icfo.es/Florian.Kulzer
          Florian   |


Reply to: