At some point my server runing Centos 4.2 x86-64, started showing the following error when runing up2date:
up2date -l Fetching Obsoletes list for channel: centos4-Base... Fetching Obsoletes list for channel: centos4-Updates... Fetching Obsoletes list for channel: centos4-extras... Fetching Obsoletes list for channel: centos4-addons... An error has occurred: exceptions.KeyError See /var/log/up2date for more information
This happens only on x86-64 versions of Centos 4 and on normal i386 version this doesn’t happen. This practically stops up2date from functioning. The up2date program version used: up2date-4.4.67-4.centos4
The error in the logs shows that it fails to find the proper arch for the kernel package:
[Wed Apr 19 03:12:44 2006] up2date Could not find an approriate arch for package [['kernel-smp', '2.6.9', '34.EL', '', 'x86_64', '1000', 'centos4-Base', 'CentOS/RPMS/kernel-smp-2.6.9-34.EL.x86_64.rpm']], skipping [Wed Apr 19 03:12:44 2006] up2date The latest version of kernel-smp was not available for this arch. Skipping [Wed Apr 19 03:12:44 2006] up2date File "/usr/sbin/up2date", line 1265, in ? sys.exit(main() or 0)...
How to fix this: If you want to stick with up2date (this doesn’t happen if you are using yum) and don’t want to wait until the Centos team releases a fix for this bug: http://bugs.centos.org/view.php?id=1181, you have the option to manually update the kernel package that keeps up2date from running. Locate the kernel package that you are using: regular, smp, etc http://mirror.centos.org/centos/4/os/x86_64/CentOS/RPMS/ and download it, for ex kernel-2.6.9-34.EL.x86_64.rpm or kernel-smp-2.6.9-34.EL.x86_64.rpm:
wget http://mirror.centos.org/centos/4/os/x86_64/CentOS/RPMS/ kernel-smp-2.6.9-34.EL.x86_64.rpm
Then just install it manually using rmp:
rpm -ivh kernel-smp-2.6.9-34.EL.x86_64.rpm
After this, run again up2date and as long as the kernel upgrade is no longer needed up2date will start working again.
Is this happening on RHEL4 also? I don’t know as I don’t have a RHEL4 64bit version available to test this, but probably this is happening on RHEL also.