Recently, I started getting tracebacks on a simple "yum update"
# yum update -y
Loaded plugins: fastestmirror, presto, refresh-packagekit
Setting up Update Process
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
File "/usr/share/yum-cli/yummain.py", line 309, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 178, in main
result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 352, in doCommands
return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
File "/usr/share/yum-cli/yumcommands.py", line 368, in doCommand
File "/usr/share/yum-cli/cli.py", line 641, in erasePkgs
if not self.remove(pattern=arg):
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 3023, in remove
(e,m,u) = self.rpmdb.matchPackageNames([kwargs['pattern']])
File "/usr/lib/python2.6/site-packages/yum/packageSack.py", line 224, in matchPackageNames
IndexError: list index out of range
Initially I thought it was due to corrupted yum metadata. So, I ran a "yum clean all" to no avail. But then, rpm also started acting spooky. "rpm -q kdelibs" returned nothing although I was pretty sure I had installed kdelibs (since amarok depends on it). Looked like a bombed rpm database.
So, the simple solution was to run "rpm --rebuilddb" which reconstructs the rpm database. Everything worked like a charm after this!
PS: This is more a note to myself than a post. If it helps anyone, well and good. :)