Installing this Perl module from cpan can be a bit tricky, as it looks for the GeoIP libraries in the wrong place.
You may see messages like this in the output when running : cpan Geo::IP
- The GeoIP CAPI is not installed you should do that
- GeoIP must be installed prior to building Geo::IP and I can’t find it in the standard library directories
It’s also compounded by the fact that currently Centos is shipping with a version of GeoIP-devel prior to 1.5, so you can’t install the GeoIP libraries via yum. I tried installing it from yum, and then got this error:
- Your installed version of libgeoip is outdated!
Here’s the quick solution:
First, compile the GeoIP libraries from the C Source using the default configuration. This is all available from:
wget http://www.maxmind.com/download/geoip/api/c/GeoIP-latest.tar.gz; tar xzf GeoIP-latest.tar.gz cd GeoIP-1.5.1 ./configure make make check make install
Now we (hopefully) have the geoip libraries installed, and the latest database installed in /usr/local/share/GeoIP/GeoIP.dat
So, back to cpan. First, enter the cpan> shell (just run the cpan command on it’s own). Then enter the following command to fetch and locate the package installation files:
This will locate and download the source package for the module, and put you in the installation directory e.g.
So, now we need to tell the package installer where to find the GeoIP libraries we previously installed from source and install the module manually.
perl Makefile.PL LIBS='-L/usr/local/lib' INC='-I/usr/local/include'; make; make test; make install