yum problem after bad shutdown

Stefano Cavallari stefano at cavallari.cjb.net
Mon Nov 19 14:47:28 UTC 2007

On Monday 19 November 2007 12:52:18 Timothy Murphy wrote:
> Stefano Cavallari wrote:
> >> I'm only using the standard Fedora-7 updates repo.
> >> I think I once enabled the kde.repo briefly,
> >> which could conceivably be the cause of my problems
> >
> > Sorry for answering so late.
> > If you still haven't solved the problem, try this:
> >
> > rpm -qa "--queryformat=%{NAME}\;%{VENDOR}\n" | grep kde |  egrep -v
> > "Fedora Project|Red Hat, Inc"
> >
> > to find what kde packages are not from Fedora.
> This doesn't find any non-Fedora packages:
> [tim at elizabeth ~]$ sudo rpm -qa "--queryformat=%{NAME}\;%{VENDOR}\n" | grep
>   kde |  egrep -v "Fedora Project|Red Hat, Inc"
> [tim at elizabeth ~]$
> > Then I think the only thing to do is to remove them with
> > rpm -e --nodeps
> > and install them again with yum.
> > Perhaps before actually remove things ask here :)
> I'm slightly reluctant to remove kdebase,
> which seems to be the source of the problem.
Removing and reinstalling packages is safe with rpm (and with yum of course) 
as you don't lose any configuration. 
Just don't that from inside a kde session.
> Since everything appears to be working perfectly well
> the problem seems to me to lie in the yum database.
> Is it possible to delete this and rebuild it?
> I did run "sudo yum clean all" and "sudo yum makecache"
> but this did not seem to affect matters.
> I should say that this is not a serious problem for me.
> I just thought I'd like to find out what causes it
> before going over to Fedora-8 on this machine.
> I can update everything except KDE stuff
> with "sudo yum --exclude=kde* update".
> I find yum very good.
> If it has a fault it is that it is rather difficult
> to find out what to do if there is a problem,
> and to find out what exactly causes the problem.
Yum by itself works quite well (imho), most of the problems comes from 
adding/deleting repositories. 
Once you use a repositories there isn't necessarily a (automatic) path to undo 
the change.
For example it happens a package gets updated and that package needs *new* 
dependencies, and when you disable the repository the dependencies are no 
longer available thus making the package non-upgradeable.
In those cases often you can't get rid of those dependencies without using 
some force (the infamous --nodeps) unless you clean everything from the added 
repo BEFORE disabling it, (which isn't even always possible).

> Of course this is a problem with much if not most software -
> developers rarely put enough thought into what the user should do
> if their program does not function as they (the developers)
> believe it will.
There isn't much to do to improve this, except maybe to integrate 
package-cleanup into yum.

Btw try this instead of the rpm/grep thingy
package-cleanup --orphans
it could help.

The difficulty in troubleshooting your issue is that you can't easily tell 
what repo a package comes from as not all packages have the right %VENDOR 
or %PACKAGER tag.

What I generally do when I have to remove a repository is:

1) identify the orphans packages with "package-cleanup --orphans"
2) try to delete them with "yum remove"
  * if that wants to delete too much packages, use rpm -e --nodeps
3) reinstall whatever I still need which I had to delete.

I already had two requests to make a mini howto on yum, maybe it's time to 
actually do it :P


More information about the users mailing list