Installing Apache2::Request on a 64-bit system
I usually shy away from using 64-bit systems unless there is a clear need for it. But with more and more hosting companies installing 64-but Linux distrobutions by default I sometimes have to suffer through.
Today I ran into a very small bug in installing Apache2::Request modules via the CPAN shell. This simply installs the default libapreq2 library with the Perl bindings for you. When attempting to start Apache I received this error:
Can't load '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/APR/Request/Request.so' for module APR::Request: libapreq2.so.2: cannot open shared object file: No such file or directory at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 230. at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/APR/Request/Param.pm line 27 Compilation failed in require at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/APR/Request/Param.pm line 27. BEGIN failed--compilation aborted at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/APR/Request/Param.pm line 27. Compilation failed in require at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Apache2/Request.pm line 2. BEGIN failed--compilation aborted at /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/Apache2/Request.pm line 2.
Basically it is saying it can't load libapreq2.so.2. Digging around in the system I found it had installed them in /usr/lib instead of the proper /usr/lib64. The actual shared library was compiled for 64-bit, but was just installed in the wrong location. A quick symlink like this fixes the isuse:
ln -s /usr/lib/libapreq2.so.2 /usr/lib64/libapreq2.so.2
Hope this helps you get over this small issue.