Cannot update openssh-server using yum
I have never been able to update openssh-server using yum
yum update openssh-server
It always breaks with the following errors...
File "/usr/bin/yum", line 29, in ?
yummain.user_main(sys.argv[1:], exit_code=True)
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 349, in doCommands
return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
File "/usr/share/yum-cli/yumcommands.py", line 201, in doCommand
return base.updatePkgs(extcmds)
File "/usr/share/yum-cli/cli.py", line 620, in updatePkgs
if not self.update(pattern=arg):
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 2865, in update
(e, m, u) = self.rpmdb.matchPackageNames([kwargs['pattern']])
File "/usr/lib/python2.4/site-packages/yum/packageSack.py", line 224, in matchPackageNames
exactmatch.append(self.searchPkgTuple(pkgtup)[0])
IndexError: list index out of range
Anyone have any idea how to fix this?
Responses
Looks like the yum metadata cache may have gotten corrupted. Since everything in the yum cache can be re-fetched from servers, this problem can be fixed by typing this command:
yum clean all
In the unlikely event that you still get an "index out of range" error after yum's cached metadata has been cleared, rebuilding the indices to the RPM database may be in order:
rpm --rebuilddb
However, chances are just the "yum clean all" will fix your problem.
Another way to clean cache is :
rm -fr /var/cache/yum/*
also you can use
cp -Rp /var/lib/rpm /var/lib/rpm.bck
rm -f /var/lib/rpm/__db*
rpm --rebuilddb
the traceback doesn't look exactly the same or the error message, but it smells very similar to what's described in https://access.redhat.com/kb/docs/DOC-44512
have you tried that?
marco
This is likely an rpmdb problem like:
https://bugzilla.redhat.com/show_bug.cgi?id=522259
...although I thought most of those bugs had been fixed with the latest versions of yum in RHEL-5 (what version do you have)?
As that bug suggests, you can try using "package-cleanup" and/or manually installing missing dependencies ... also "yum upgrade yum" is never a bad idea, if you can.
In that case, you'll need to download the rpms from RHN and install them using;
rpm -Uv <rpm file names>
You may have to do multiple round trips to RHN to get all your dependencies right. But you need to do this only for yum. Once yum is fixed, you can use it to update everything else.
If openssh-server is your only concern for now, you could update openssh-server using rpm in the same way.