Double installation of liblzma.so.5 breaks libarchive.so.5
Michael Hoffmann
benzene at arcor.de
Fri May 6 19:05:07 UTC 2011
Hi,
May be some of you will be affected by this like me.
Today I upgraded from RELEASE_8_1 to RELEASE_8_2. The box was upgraded over
the years starting from 6.2, as far as I know.
But now this happened:
> # pkg_create -b xz-5.0.1
> /libexec/ld-elf.so.1: /usr/local/lib/liblzma.so.5: version XZ_5.0 required
by /usr/lib/libarchive.so.5 not defined
>
> # ldd /usr/lib/libarchive.so.5
> /usr/lib/libarchive.so.5:
> libz.so.5 => /lib/libz.so.5 (0x281d5000)
> libmd.so.5 => /lib/libmd.so.5 (0x281e7000)
> libbz2.so.4 => /usr/lib/libbz2.so.4 (0x28300000)
> liblzma.so.5 => /usr/local/lib/liblzma.so.5 (0x28311000) <== !!!
> libcrypto.so.6 => /lib/libcrypto.so.6 (0x28331000)
> libc.so.7 => /lib/libc.so.7 (0x2808f000)
> libthr.so.3 => /lib/libthr.so.3 (0x28483000)
>
> # find / -name "liblzma.so.5"
> /usr/lib/liblzma.so.5
> /usr/local/lib/liblzma.so.5
>
> pkg_info -W /usr/local/lib/liblzma.so.5
> /usr/local/lib/liblzma.so.5 was installed by package xz-5.0.1
I think trouble partially comes from preserving an old LD_LIBRARY_PATH entry
in csh.cshrc:
> # mergemaster
> [...]
> *** Displaying differences between ./etc/csh.cshrc and installed version:
> --- /etc/csh.cshrc 2011-05-05 20:20:26.000000000 +0200
> +++ ./etc/csh.cshrc 2011-05-06 18:23:46.000000000 +0200
> @@ -1,4 +1,3 @@
> -# $FreeBSD: src/etc/csh.cshrc,v 1.3.56.1.4.1 2010/06/14 02:09:06 kensmith
Exp $
> +# $FreeBSD: src/etc/csh.cshrc,v 1.3.56.1.6.1 2010/12/21 17:09:25 kensmith
Exp $ #
> # System-wide .cshrc file for csh(1).
> -setenv LD_LIBRARY_PATH /usr/local/lib:/usr/local/lib/pth
>
> Use 'd' to delete the temporary ./etc/csh.cshrc
> Use 'i' to install the temporary ./etc/csh.cshrc
> Use 'm' to merge the temporary and installed versions
> Use 'v' to view the diff results again
>
> Default is to leave the temporary file to deal with by hand
>
> How should I deal with this? [Leave it for later] m
>
> # $FreeBSD: src/etc/csh.cshrc,v 1.3.5 | # $FreeBSD: src/etc/csh.cshrc,v
1.3.5
> %2
> setenv LD_LIBRARY_PATH /usr/local/lib <
> %1
>
> Use 'i' to install merged file
> Use 'r' to re-do the merge
> Use 'v' to view the merged file
> Default is to leave the temporary file to deal with by hand
>
> *** How should I deal with the merged file? [Leave it for later] i
After deinstalling xz-5.0.1 everything works fine again. But probably cleaning
the environment from LD_LIBRARY_PATH would have done, too. (I thought it to
be wise to remove it from csh.cshrc. After that I used libchk and pkg_libchk,
and everything seems fine.)
I cannot reconstruct why 'pkgdb -Fu' did not tried to prevent me from
using 'archivers/xz' furthermore, allthough it now seems to be marked as
IGNORE. I also don't know how this LD_LIBRARY thing ever popped up in
csh.cshrc, but it seems to persist there from at least 7.2. Newer systems
don't seem to have such an entry.
Kind regards,
Michael Hoffmann
More information about the freebsd-stable
mailing list