Today, when I was installing some missing Perl modules for
SpamAssassin on a bare Ubuntu 8.04 LTS Hardy Heron
installation I had to use the CPAN shell for a few of
those modules. But when I tried to install the first of
the Perl modules not available via apt,
IP::Country::Fast
, I got the following
output:
Warning: prerequisite Geography::Countries not found.
Writing Makefile for IP::Country
-- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible
At first I thought this had to do with the Perl module
Geography::Countries
not being installed as well,
so I tried to install that one via the CPAN shell. But alas,
this also resulted in the "NOT OK" message:
Writing Makefile for Geography::Countries
-- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible
After some thinking I realised that I was working on a
bare Ubuntu installation and make
might be
missing... And since I had used the default configuration
of CPAN instead of manual configuration the first time I
started the CPAN shell using perl -MCPAN -e
shell
I overlooked this. On the other hand the "NOT
OK" warning CPAN gives is extremely unclear.
Anyway, I left the CPAN shell and used apt-get
install make
to install make
. Next I used
which make
to obtain the path to make, since I
had to configure this into the CPAN shell.
Back into the CPAN shell I first verified the current setting of
the make option using o conf make
:
cpan> o conf make
make
The above might be read as "the current value of make is make" but it actually shows the name of the option, make, followed by its value, which is empty.
After I set the value of make to the path of make
and commited this change, see commands and output below, I
was able to install the required Perl modules.
cpan> o conf make /usr/bin/make
make /usr/bin/make
cpan> o conf commit
commit: wrote /etc/perl/CPAN/Config.pm
Well... until I had to install a module that required a C++ compiler.