In this post I will sink deep on a problem I had when I upgraded my CentOS 5.3 to the latest 5.5 release. The problem surfaced when I started working on apache for some changes. Here is the haunting log of that problem.
[Mon Jan 10 17:34:29 2011] [error] Can't load Perl module Compress::Zlib for server netconsvr001.sulit.net:0, exiting...
[Mon Jan 10 17:34:46 2011] [error] dualvar is only available with the XS version of Scalar::Util at /usr/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm line 8\nBEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm line 8.\nCompilation failed in require at (eval 7) line 3.\n
For the untrained eye this is a major disaster. Issuing the command $sudo package-clean --problem; $rpm -Va --nofiles --nodigest doesnt solve the problem worst you are even thinking of reverting back (rollback) changes to its original configuration. Which is bad since you loose the availability of moving your box to a patch and security fixed version.
To solve the issue I did a "Hack" to the actual library that is causing the problem.
$sudo vi /usr/lib/perl5/site_perl/5.8.8/Compress/Zlib.pm and checked on the problematic line (8)
1. Remove the qw(dualvar) entry on that line. Which looks like this: use Scalar::Util qw(dualvar);
2. Save the file
3. Re-start apache: service httpd restart
Viola! Problem Fixed.