[PlanetCCRMA] (OT) yum dependency problems following power cut

Fernando Lopez-Lezcano nando at ccrma.Stanford.EDU
Mon Aug 11 11:36:10 PDT 2008


On Mon, 2008-08-11 at 18:04 +0100, Michael TD Nelson wrote:
> Hi,
> 
> Thank you very much for your response. The help is much appreciated.
> 
> On Mon, 2008-08-11 at 09:48 +0200, Fernando Lopez-Lezcano wrote:
> > On Sun, 2008-08-10 at 19:17 +0100, Michael TD Nelson wrote: 
> > > Last time I was doing a 'yum update', the power to my machine was cut
> > > halfway through. I suspect this may have caused the problems which I am
> > > having now.
> > 
> > Just in case you should (I think) check first if you have duplicated
> > packages installed. 
> > 
> > You can do that with "package-cleanup --dupes", package-cleanup is part
> > of the yum-utils package. If you have duplicated packages you have to
> > try to remove the redundant ones (the older ones probably). 
> 
> Hmm. Yes, there are sixty or so duplicated packages. 

Ouch, yes, I have seen this happen before. 

> I won't copy the output here, unless anyone thinks it would be useful!
> 
> How do I remove a particular version of a package? (I did notice that
> you said 'try to remove'...)

rpm -e packagename-version-release

(ie: just put the whole version there...)

> > > Here are the last few lines of output from today's 'yum update',
> > > followed by a couple of other commands which I thought might be
> > > relevant. Has anyone got any suggestions for me?
> > > 
> > > --> Finished Dependency Resolution
> > > 1:perl-Module-Pluggable-3.60-30.fc9.i386 from installed has depsolving
> > > problems
> > >   --> Missing Dependency: perl = 4:5.10.0-30.fc9 is needed by package
> > > 1:perl-Module-Pluggable-3.60-30.fc9.i386 (installed)
> > > glibc-2.8-3.i686 from installed has depsolving problems
> > >   --> Missing Dependency: glibc-common = 2.8-3 is needed by package
> > > glibc-2.8-3.i686 (installed)
> > > Error: Missing Dependency: perl = 4:5.10.0-30.fc9 is needed by package
> > > 1:perl-Module-Pluggable-3.60-30.fc9.i386 (installed)
> > > Error: Missing Dependency: glibc-common = 2.8-3 is needed by package
> > > glibc-2.8-3.i686 (installed)
> > 
> > Hmmm, yes, probably you have a "halfway" updated system. 
> > Do a "package-cleanup --problems" to see what are your current dependency problems. 
> > 
> 
> [root at localhost ~]# package-cleanup --problems
> Setting up yum
> Reading local RPM database
> Processing all local requires
> Missing dependencies:
> Package checkstyle requires ant-javadoc
> Package checkstyle requires antlr-javadoc
> Package checkstyle requires jakarta-commons-beanutils-javadoc
> Package checkstyle requires xml-commons-apis-javadoc
> Package perl-Module-Pluggable requires perl = 4:5.10.0-31.fc9
> Package glibc requires glibc-common = 2.8-8
> 
> > > [root at localhost ~]# yum list perl
> > > Loaded plugins: refresh-packagekit
> > > Installed Packages
> > > perl.i386                                4:5.10.0-30.fc9
> > > installed
> > > Available Packages
> > > perl.i386                                4:5.10.0-31.fc9        updates
> > > 
> > > [root at localhost ~]# yum list glibc-common
> > > Loaded plugins: refresh-packagekit
> > > Installed Packages
> > > glibc-common.i386                        2.8-3
> > > installed
> > > Available Packages
> > > glibc-common.i386                        2.8-8                  updates
> > 
> > What if you do a "yum list glibc*"?
> > 
> 
> That seems useful...
> 
> [root at localhost ~]# yum list glibc*
> [list of repositories snipped]
> Installed Packages
> glibc.i686                               2.8-3
> installed
> glibc.i686                               2.8-8
> installed

So, this was partially upgraded. Just glibc and not the other glibc*
packages. 

> glibc-common.i386                        2.8-3
> installed
> glibc-devel.i386                         2.8-3
> installed
> glibc-headers.i386                       2.8-3
> installed
> Available Packages
> glibc.i386                               2.8-8                  updates
> glibc.i686                               2.8-8                  updates
> glibc-common.i386                        2.8-8                  updates
> glibc-devel.i386                         2.8-8                  updates
> glibc-headers.i386                       2.8-8                  updates
> glibc-utils.i386                         2.8-8                  updates
> 
> Which should I remove, and how?

I don't remember exactly what I did in a similar situation. "glibc"
could be tricky because without it pretty much nothing will work (I
think). Backup your stuff and have a recovery cd handy...

After writing the stuff below[*] I looked again at "man package-cleanup"
and found it has a "--cleandupes" option that supposedly will erase
older versions of duplicated packages. I have never tried to use it so I
don't know if it is the best option, specially for something like glibc.
I imagine it could do the right thing and then you could try another
upgrade...

[*] This is what I was writing before:

You could try with some other not-so-critical package first. From your
list of duplicated packages. 

Take one of the dups, say you have:
  goo-1.2-3
  goo-1.3-2
So try to:
  rpm -e goo-1.2-3
And after that verify that the remaining package has what it is supposed
to have:

rpm -V goo

You should get no errors from that. But it may be that goo-1.2 and
goo-1.3 shared some exact same files in which case I think they will be
missing (not sure about this). Then you need to reinstall goo... I don't
see a way to force a reinstall using yum (it will probably tell you you
already have it installed if you try). 

There may be some other easier way to do this I don't know about...
[anyone else in the list with "repair experience"?]
-- Fernando




More information about the PlanetCCRMA mailing list