[ydl-gen] installed YDL 4.1 over 3.0.1; rpm and yum broken: undefined symbols?

Eric Dunbar eric.dunbar at gmail.com
Sun Aug 27 07:33:19 MDT 2006


Hello Bill:

Two questions regarding how you determined in what file the symbol was
defined (for the sake of learning).

On 27/08/06, Bill Fink <billfink at mindspring.com> wrote:
> Hi Mike,
>
> On Fri Aug 25 2006, Michael Evans wrote:
>
> > 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:

How did you know/determine that that symbol is defined in the
krb5-libs package? Did you know that krb5-related symbols would be
defined in the krb5-libs package because of package naming
conventions?

> 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

How did you get to finding libkrb5.a? Again, is this a naming
convention of packages (e.g. all symbols are in files name
libPACKAGENAME.a in /usr/lib/?)

> 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

Or, 'yum provides /usr/lib/libkrb5.so.3.2' ;-)



More information about the yellowdog-general mailing list