ninz857 has asked for the wisdom of the Perl Monks concerning the following question:

Hi I am trying to install Crypt:SSLeay on my
"Linux rb-mms-smtp3 2.4.21-58.EL #1 Tue Nov 4 11:55:15 EST 2008 i686 i686 i386 GNU/Linux",
which has openssl-0.9.7a-24 already installed. When i "perl Makefile.PL" i get
"[root@rb-mms-smtp3 Crypt-SSLeay-0.57]# perl Makefile.PL ======================================================= Only one OpenSSL installation found at /usr Consider running 'perl Makefile.PL --default' the next time Crypt::SSLeay is upgraded to select this directory automatically thereby avoiding the following prompt. ======================================================= Which SSL install path do you want to use? [/usr] BUILD INFORMATION ================================================ ssl library: OpenSSL 0.9.7 in /usr ssl header: openssl/ssl.h libraries: -L/usr/lib -lssl -lcrypto -lgcc include dir: -I/usr/include/openssl -I/usr/kerberos/include ================================================ Note (probably harmless): No library found for -lgcc Writing Makefile for Crypt::SSLeay The test suite can attempt to connect to public servers to ensure that the code is working properly. If you are behind a strict firewall or have no network connectivity, these tests may fail (through no fault of the code). Do you want to run the live tests (y/N) ? [N] "
and a "make" produces
" [root@rb-mms-smtp3 Crypt-SSLeay-0.57]# make Makefile:87: *** missing separator. Stop. "
Please can some1 assist me. Thank you very much...

Replies are listed 'Best First'.
Re: Error making Crypt::SSLeay
by zentara (Cardinal) on Dec 09, 2009 at 13:16 UTC
    ....when you get a module build failure, first thing is delete the whole thing, unpack it again fresh ... and try the build process again.... sometimes there are files left behind from somewhere.... maybe on the server that packed it up originally..... so if a rebuild gives the same error, .... then redownload from another cpan server or other source...and try again

    ...if that fails....

    .... first google for the error message, like google for"Makefile:87: *** missing separator"

    ...if that don't reveal the answer....

    ...then check out the module's cpan bug page, see if the same error is listed....if not file a bug report

    .... by the way, it would help if you showed what line 87 in the Makefile is, and maybe a few lines before it...


    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku
Re: Error making Crypt::SSLeay
by Khen1950fx (Canon) on Dec 09, 2009 at 19:22 UTC
    I've had problems with Crypt::SSLeay in the past, so I followed zentara's advice and googled. Most of the hits were about the current user's locale. Evidently, primarily on older, pre-5.8.8 perls, having your locale set to UTF-8 can cause broken Makefiles which give you the error that you're getting. Here's one of the responses that I got:

    NOTE: if you get an error like this (the Makefile line number may vary +): Makefile:91: *** missing separator then set the environment variable LC_ALL to "C" and retry from scratch (re-run perl "Makefile.PL"). -(And consider upgrading your Perl.) +(And consider upgrading your Perl to, say, at least Perl 5.8.8.) (You got this message because you seem to have an UTF-8 locale active in your shell environment, this used - to cause broken Makefiles to be created from Makefile.PLs.)

    The problem that I have with that is that my locale is UTF-8 and Crypt::SSLeay installed with no problems:-).

    You could set LC_ALL to C, at least for the duration of the install, but I'm willing to bet that you need to install openssl-devel or libssl-devel.

      Hi Thanks it worked after i set the LC_ALL variable...
Re: Error making Crypt::SSLeay
by rowdog (Curate) on Dec 10, 2009 at 02:00 UTC

    I would just echo what zentara++ said but first I like to check if there's any reported bugs in the package in case it's an architecture issue or something. You can find the link on the CPAN page for any module or you can go directly to the public bug tracker and search for the module in question.