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

Bill Fink billfink at mindspring.com
Mon Aug 28 23:31:23 MDT 2006


Hi Mike,

I'm glad you got your system back to a more usable, manageable state.

I'm not sure how you managed to get both 1.2.7-14 and 1.3.4-6 versions
of krb5-libs installed at the same time.  That normally shouldn't be
possible because of the dependency checking, unless you did a "--nodeps"
and/or "--force" rpm installation, which is generally frowned upon
unless you're really sure it's OK (I had to do some of that in my
upgrade).  I guess the older krb5-libs were in /usr/kerberos/lib,
while the newer krb5-libs are just in /usr/lib, and you had
/usr/kerberos/lib in your ld.so.conf (which would normally be
the case I believe), which causes /usr/kerberos/lib to be searched
before /usr/lib.

I actually am currently in the process of upgrading a ppc64 G5 system
from 3.0.1 to 4.1, and so am reliving all of these same issues (and
several more such as GLIBC version issues).  I finally got it to the
point where it was downloading 607 packages to install/upgrade when
I left work around 8 PM (I'll see how it fared in the morning).  All
the initial fun (not) was in first updating yum/rpm so I could then
finally do a "yum upgrade" (or "yum update") from the 4.1 RPMS.

BTW I generally set up 3 ext3 partitions (plus a swap partition),
arranged as root, swap, alternate-root, and user-data.  The root
and alternate-root are equally sized root file systems, separated
by the swap partition (to give a little bit of protection by physical
separation in case of disk problems).  The alternate-root is generally
not mounted, and is basically a mirror copy of root using rsync
(excluding fstab and yaboot.conf which are modified to reflect
the different partition number).  Then, if there's a disk problem
with the root file system, I can just boot the alternate-root to
try and fix things.  This has come in handy many times as I unfortunately
seem to be experiencing disk problems with about half of the internal
disks within a 3 to 4 year time frame.  A bootable firewire disk is
another good option.  The alternate-root is also handy when doing
major system upgrades (like 3.0.1 to 4.1), since if something goes
seriously wrong, you can always get back to square one on the original
root file system, and start all over from scratch.  The only real
negative is you lose a few gigabytes of disk storage that you don't
use most of the time, but this is a cost I'm more than willing to pay.

						-Bill



On Mon, 28 Aug 2006, Michael Evans wrote:

> Bill,
> 
> You were right. Short story:
> 
> 1. cd /; rpm2cpio krb5-libs-1.3.4-6.ppc.rpm | cpio -divu to get libs to 
> run rpm
> 2. rpm -e krb5-libs-1.2.7-14.ppc.rpm (with a lot of work) to get rid of 
> old libs
> 3. yum update works now.
> 
> Long story:
> 
> I was able to use rpm2cpio ... | cpio -divu (u for force overwrite) to get 
> rpm back.  Then erase /var/lib/rpm/__db.00* and rpm --rebuilddb. Then to 
> install krb5-libs-1.3.4-6.ppc.rpm I had to remove 
> krb-libs-1.2.7-14.ppc.rpm.  That meant I had to remove a lot of YDL3.0.1 
> packages that remained after the 4.1 installation in order to resolve 
> dependencies with rpm -e.  Once I did that, I got yum back.  One of these 
> dependencies was pine 4.44; since pine isn't in FC5, I got pine source 
> from the University of Washington, edited the spec file to have "Licence" 
> instead of "Copyright" line, built and reinstalled that.  Back to work 
> now.  There's still probably bunches of 3.0.1 packages lurking but I'll 
> deal with them later.
> 
> Moral of story:  Next time I'll install the OS to one partition and data 
> directories to another; next major update I'll just wipe the OS partition 
> and save some trouble by starting fresh.
> 
> Thanks again,
> Mike
> 
> On Sun, 27 Aug 2006, Michael Evans wrote:
> 
> > Date: Sun, 27 Aug 2006 23:37:00 -0700 (MST)
> > From: Michael Evans <mevans at ltrr.arizona.edu>
> > To: yellowdog-general at lists.terrasoftsolutions.com
> > Cc: Bill Fink <billfink at mindspring.com>
> > Subject: Re: installed YDL 4.1 over 3.0.1; rpm and yum broken: undefined
> >     symbols?
> > 
> > Bill,
> > 
> > Thanks for your very helpful messages.  I've got
> > 
> > mevans at zero:~$ ldd /bin/rpm | grep k
> >         libgssapi_krb5.so.2 => /usr/kerberos/lib/libgssapi_krb5.so.2 (0x0f5c0000)
> >         libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x0f6f0000)
> >         libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3 (0x0f6c0000)
> >         libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x0f6a0000)
> > 
> > with
> > 
> > ll /usr/kerberos/lib/libgssapi_krb5.so.2 /usr/kerberos/lib/libkrb5.so.3 /usr/kerberos/lib/libk5crypto.so.3 /usr/kerberos/lib/libcom_err.so.3
> > lrwxrwxrwx  1 root root 17 May  8  2003 /usr/kerberos/lib/libcom_err.so.3 -> libcom_err.so.3.0*
> > lrwxrwxrwx  1 root root 21 May  8  2003 /usr/kerberos/lib/libgssapi_krb5.so.2 -> libgssapi_krb5.so.2.2*
> > lrwxrwxrwx  1 root root 18 May  8  2003 /usr/kerberos/lib/libk5crypto.so.3 -> libk5crypto.so.3.0*
> > lrwxrwxrwx  1 root root 14 May  8  2003 /usr/kerberos/lib/libkrb5.so.3 -> libkrb5.so.3.1*
> > 
> > and with
> > 
> > mevans at zero:~$ ll /usr/kerberos/lib/libgssapi_krb5.so.2.2  /usr/kerberos/lib/libkrb5.so.3.1 /usr/kerberos/lib/libk5crypto.so.3.0 /usr/kerberos/lib/libcom_err.so.3.0
> > -rwxr-xr-x  1 root root  21K Apr 23  2003 /usr/kerberos/lib/libcom_err.so.3.0*
> > -rwxr-xr-x  1 root root 101K Apr 23  2003 /usr/kerberos/lib/libgssapi_krb5.so.2.2*
> > -rwxr-xr-x  1 root root  91K Apr 23  2003 /usr/kerberos/lib/libk5crypto.so.3.0*
> > -rwxr-xr-x  1 root root 453K Apr 23  2003 /usr/kerberos/lib/libkrb5.so.3.1*
> > 
> > and 
> > 
> > mevans at zero:~$ rpm -q krb5-libs
> > krb5-libs-1.2.7-14
> > krb5-libs-1.3.4-6
> > 
> > I assume the first krb5-libs package listed is from the 3.0.1 installation. 
> > 
> > where you had
> > 
> > gwiz% ldd /bin/rpm | grep k
> >         libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x0f8d5000)
> >         libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x0f849000)
> >         libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x0f806000)
> > 
> > Would you be able to confirm for me on your 4.1 system that you've got
> > newer/different libraries?  And if so, would you please email (or make
> > available via download) these to me?  I've got another computer
> > (webserver) running YDL4.0 but I'd rather not mess with updating that
> > until I have the current problem fixed.  I'll look if there's a way to
> > just reinstall the krb5-libs from the 4.1 install CDs.
> > 
> > Thanks again,
> > Mike
> > 
> > On Sun, 27 Aug 2006, Bill Fink wrote:
> > 
> > > Date: Sun, 27 Aug 2006 12:53:23 -0400
> > > From: Bill Fink <billfink at mindspring.com>
> > > To: Bill Fink <billfink at mindspring.com>
> > > Cc: yellowdog-general at lists.terrasoftsolutions.com, mevans at ltrr.arizona.edu
> > > Subject: Re: installed YDL 4.1 over 3.0.1; rpm and yum broken: undefined
> > >     symbols?
> > > 
> > > After re-looking at your error message from the rpm command, it seems
> > > that you actually have a krb5-libs package installed, but it's just
> > > not a recent enough version.
> > > 
> > > The Kerberos libraries you will have to manually update are:
> > > 
> > > gwiz% ldd /bin/rpm | grep k
> > >         libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x0f8d5000)
> > >         libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x0f849000)
> > >         libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x0f806000)
> > > 
> > > Those are actually just symbolic links, so the actual libraries needed
> > > are:
> > > 
> > > 	/usr/lib/libgssapi_krb5.so.2.2
> > > 	/usr/lib/libkrb5.so.3.2
> > > 	/usr/lib/libk5crypto.so.3.0
> > > 
> > > You will need to get these from another compatible YDL 4.1 system.
> > > 
> > > Once you've update those libraries, hopefully you will then be able
> > > to run rpm.  Use rpm to update the krb5-libs package as I described
> > > earlier.  You would then hopefully be back in good shape to use yum
> > > to update any other parts of your system.
> > > 
> > > 						-Bill
> > > 
> > > 
> > > 
> > > On Sun, 27 Aug 2006, I wrote:
> > > 
> > > > 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
> > > 
> > 
> >
> 
> -- 
> Michael Evans			   ph: 520-626-2897
> Laboratory of Tree-Ring Research   fax: 520-621-8229
> University of Arizona		   email: mevans at ltrr.arizona.edu
> 105 W. Stadium, Tucson, AZ 85721   http://ic.ltrr.arizona.edu/


More information about the yellowdog-general mailing list