[ydl-gen] installed YDL 4.1 over 3.0.1; rpm and yum broken: undefined symbols?
Bill Fink
billfink at mindspring.com
Sun Aug 27 00:25:50 MDT 2006
Bummer. I just noticed that rpm2cpio also has a reference to the
Kerberos libraries, so what I suggested may not work. In that case,
you would have to manually install the required Kerberos libraries
first (by for example copying them from another compatible system).
-Bill
On Sun, 27 Aug 2006, I wrote:
> Hi Mike,
>
> On Fri Aug 25 2006, Michael Evans wrote:
>
> > Apologies if this question has been answered already; I couldn't find
> > anything relevant on the archives. Yum and rpm are complaining about
> > undefined symbols within libraries.
> >
> > I just installed YDL 4.1 from CDs (sagitta release) to a Quicksilver
> > (2002) dual 1GHz G4 tower which was happily running 3.0.1. At
> > installation I chose not to reformat drives; and to install selinux and
> > firewall with ssh port open; to install everything as I had done with
> > 3.0.1 long ago. The install (more install.log | grep "error") did not
> > report any problems, and display, X, smp, networking, sound, etc appear
> > fine. I have /etc/yum.conf pointing to 4.1 repositories at
> > ydl.osuosl.org, but I can't get yum or rpm to run out of the box.
> >
> > Here are the error messages:
> >
> > [root at zero ~]# yum update
> > There was a problem importing one of the Python modules
> > required to run yum. The error leading to this problem was:
> >
> > /lib/libssl.so.5: undefined symbol: krb5_cc_get_principal
> >
> > Please install a package which provides this module, or
> > verify that the module is installed correctly.
> >
> > It's possible that the above module doesn't match the
> > current version of Python, which is:
> > 2.4.2 (#1, Nov 10 2005, 16:51:21)
> > [GCC 3.4.4 20050721 (Yellow Dog 3.4.4-2.ydl.2)]
> >
> > If you cannot solve this problem yourself, please send this
> > message to <yum at lists.linux.duke.edu>.
> >
> > [root at zero ~]#
> >
> > (Should I redirect this request there?)
>
> The krb5_cc_get_principal symbol is defined in the krb5-libs package:
>
> gwiz% nm /usr/lib/libkrb5.a | grep krb5_cc_get_principal
> U krb5_cc_get_principal
> 00000138 T krb5_cc_get_principal
> U krb5_cc_get_principal
> U krb5_cc_get_principal
> U krb5_cc_get_principal
> nm: ser_eblk.o: no symbols
> U krb5_cc_get_principal
>
> I had to use the .a library rather than the .so shared library since
> the .so libraries have been stripped of the symbols. The 'T' record
> defines the symbol and the 'U' records are undefined references to the
> symbol (which get resolved by the loader).
>
> The programs such as yum actually use the shared libraries, so to find
> which package contains libkrb5:
>
> gwiz% rpm -qf /usr/lib/libkrb5.so.3.2
> krb5-libs-1.3.4-6
>
> > rpm reports a different symbol error within another library:
> >
> > [root at zero ~]# rpm -q yum
> > rpm: symbol lookup error: /usr/lib/libneon.so.24: undefined symbol: GSS_C_NT_HOSTBASED_SERVICE
> > [root at zero ~]#
>
> gwiz% nm /usr/lib/libgssapi_krb5.a | grep GSS_C_NT_HOSTBASED_SERVICE
> 00000010 G GSS_C_NT_HOSTBASED_SERVICE
> 00000018 G GSS_C_NT_HOSTBASED_SERVICE_X
>
> I wasn't familiar with the 'G' symbol, but a "man nm" indicates it's
> "an initialized data section for small objects".
>
> gwiz% rpm -qf /usr/lib/libgssapi_krb5.so.2.2
> krb5-libs-1.3.4-6
>
> So this is also provided bu the krb5-libs package. So it seems you
> are missing this package for some reason.
>
> > Both /lib/libneon.so.24 and /usr/lib/libssl.so.5 appear to have been
> > installed with YDL 4.1:
> >
> > [root at zero /home/mevans]# ls -lst /lib/libssl.so.5 /usr/lib/libneon.so.24
> > 0 lrwxrwxrwx 1 root root 16 Aug 25 12:38 /lib/libssl.so.5 -> libssl.so.0.9.7f
> > 0 lrwxrwxrwx 1 root root 17 Aug 25 12:38 /usr/lib/libneon.so.24 -> libneon.so.24.0.7
>
> Yes, you have libneon and libssl, but iti would seem you don't have
> the Kerberos libraries that they reference and require.
>
> > Any help appreciated. Or should I take this to the yum list at Duke? Or
> > elsewhere?
>
> You need to install the krb5-libs package. But you have a slight
> problem since you can't run rpm which is used to install packages.
>
> I hope you have rpm2cpio and cpio installed on your system. If you
> do, you can install the krb5-libs package using them. First, get the
> krb5-libs-1.3.4-6.ppc.rpm (from the CDs or the YDL ftp site). Then,
> as root:
>
> cd /
> rpm2cpio krb5-libs-1.3.4-6.ppc.rpm | cpio -div
>
> Then, hopefully, you should be able to run rpm again (you may also
> have to run ldconfig as root first). At this point, install krb5-libs
> normally via rpm, so that the rpm database gets updated properly:
>
> rpm -U krb5-libs-1.3.4-6.ppc.rpm
>
> You may have to add a "--force" option to the above command.
>
> If you don't have rpm2cpio or cpio, you might be able to get those
> binaries off another system, or as a last ditch measure I could email
> them to you.
>
> After all this, hopefully you will once again have a working rpm
> and yum environment, and can do further updates just using yum.
>
> > Thanks in advance,
> > Mike Evans
>
> -Hope this helps
>
> -Bill
More information about the yellowdog-general
mailing list