Michael Hoffmann
2011-May-06 19:05 UTC
Double installation of liblzma.so.5 breaks libarchive.so.5
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 requiredby /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.1I 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 kensmithExp $> +# $FreeBSD: src/etc/csh.cshrc,v 1.3.56.1.6.1 2010/12/21 17:09:25 kensmithExp $ #> # 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,v1.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] iAfter 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
Matthias Andree
2011-May-07 08:56 UTC
Double installation of liblzma.so.5 breaks libarchive.so.5
Am 06.05.2011 20:37, schrieb Michael Hoffmann:> 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.Michael, It's apparently not designed to do that. Does "portmaster --check-depends" complain? It's a shell script from ports-mgmt/portmaster, just install and run it, it's lightweight (as opposed to portupgrade). Was your library path in csh created or suggested by pth-related ports? (Perhaps there could be something in the ports framework that warns if port duplicates base system functionality and suggests to deinstall a port that is no longer needed -- however, that would have to work also in cases where a newer ports is supposed to complement base system services. There were such situations for ssh, for instance.)