Wednesday, November 2, 2011

yum [Errno -3] Error performing checksum

EDIT: One of my friends naresh has worked recently on this problem, refer to his blog here

I created a postfix rpm today and then created a yum repository to serve it, but whenever I would try to install this rpm from one of my client servers, I would get the  error below
[root@server yum]# yum list postfix
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.kiewel-online.ch
 * epel: ftp.uni-koeln.de
 * extras: centos.kiewel-online.ch
 * rpmforge: fr2.rpmfind.net
 * updates: centos.kiewel-online.ch
my                                                                                                                                             | 2.6 kB     00:00
my/primary_db                                                                                                                                  | 4.6 kB     00:00
http://server/repo/RPMS/x86_64/base/repodata/primary.sqlite.bz2: [Errno -3] Error performing checksum
Trying other mirror.
viva/primary_db                                                                                                                                  | 4.6 kB     00:00
http://server/repo/RPMS/x86_64/base/repodata/primary.sqlite.bz2: [Errno -3] Error performing checksum
Trying other mirror.
Error: failure: repodata/primary.sqlite.bz2 from my: [Errno 256] No more mirrors to try.
Google did not turn up too many helpful links, digging deeper in some Redhat docs, I found this
Because RPM packages for Red Hat Enterprise Linux 6 are compressed using the XZ lossless data compression format, and may also be signed using alternative (and stronger) hash algorithms such as SHA-256, it is not possible to run createrepo on Red Hat Enterprise Linux 5 to create the package metadata for Red Hat Enterprise Linux 6 packages. The createrepo command relies on rpm to open and inspect the packages, and rpm on Red Hat Enterprise Linux 5 is not able to open the improved Red Hat Enterprise Linux 6 RPM package format.
I then realized that I had created the rpm on Centos-5 and was creating the repo on a server running Centos-6, to see if that was the problem, I quickly created a test repo on a Centos-5 server and things worked as expected.

Another change in Centos-6 from Centos-5 is the location where one builds the rpm, the good old /usr/src/redhat is now extinct,  now with Centos-6 the current location is /root/rpmbuild.

0 comments:

Post a Comment