Problem installing in Net::SSLeay

Somedays ago, I was installing Dist::Zilla, but it failed due to a dependency CPAN::Uploader, which failed due to Net::SSLeay. This is the concerned build.log:

cpanm (App::cpanminus) 1.6911 on perl 5.016003 built for x86_64-linux
Work directory is /home/ubuntu/.cpanm/work/1372532802.14856
You have make /usr/bin/make
You have LWP 6.05
You have /bin/tar: tar (GNU tar) 1.26
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
You have /usr/bin/unzip
Searching install on cpanmetadb ...
install is up to date. (0.01)
Searching CPAN::Uploader on cpanmetadb ...
--> Working on CPAN::Uploader
Fetching http://www.cpan.org/authors/id/R/RJ/RJBS/CPAN-Uploader-0.103004.tar.gz
-> OK
Unpacking CPAN-Uploader-0.103004.tar.gz
Entering CPAN-Uploader-0.103004
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 6.30 ... Yes (6.66)
Configuring CPAN-Uploader-0.103004
Running Makefile.PL
Warning: prerequisite LWP::Protocol::https 1 not found.
Checking if your kit is complete...
Looks good
Writing Makefile for CPAN::Uploader
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have File::Spec 0 ... Yes (3.40)
Checking if you have HTTP::Status 0 ... Yes (6.03)
Checking if you have File::Find 0 ... Yes (1.20)
Checking if you have LWP::Protocol::https 1 ... No
Checking if you have Getopt::Long::Descriptive 0.084 ... Yes (0.093)
Checking if you have Term::ReadKey 0 ... Yes (2.30)
Checking if you have warnings 0 ... Yes (1.13)
Checking if you have File::HomeDir 0 ... Yes (1.00)
Checking if you have Data::Dumper 0 ... Yes (2.135_06)
Checking if you have Carp 0 ... Yes (1.26)
Checking if you have HTTP::Request::Common 0 ... Yes (6.04)
Checking if you have Test::More 0.96 ... Yes (0.98)
Checking if you have strict 0 ... Yes (1.07)
Checking if you have LWP::UserAgent 0 ... Yes (6.05)
Checking if you have File::Temp 0 ... Yes (0.22)
Checking if you have File::Basename 0 ... Yes (2.84)
==> Found dependencies: LWP::Protocol::https
Searching LWP::Protocol::https on cpanmetadb ...
--> Working on LWP::Protocol::https
Fetching http://www.cpan.org/authors/id/G/GA/GAAS/LWP-Protocol-https-6.04.tar.gz
-> OK
Unpacking LWP-Protocol-https-6.04.tar.gz
Entering LWP-Protocol-https-6.04
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.66)
Configuring LWP-Protocol-https-6.04
Running Makefile.PL
Warning: prerequisite IO::Socket::SSL 1.54 not found.
Checking if your kit is complete...
Looks good
Writing Makefile for LWP::Protocol::https
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have IO::Socket::SSL 1.54 ... No
Checking if you have LWP::UserAgent 6.04 ... Yes (6.05)
Checking if you have Mozilla::CA 20110101 ... Yes (20130114)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.66)
Checking if you have Net::HTTPS 6 ... Yes (6.04)
==> Found dependencies: IO::Socket::SSL
Searching IO::Socket::SSL on cpanmetadb ...
--> Working on IO::Socket::SSL
Fetching http://www.cpan.org/authors/id/S/SU/SULLR/IO-Socket-SSL-1.94.tar.gz
-> OK
Unpacking IO-Socket-SSL-1.94.tar.gz
Entering IO-Socket-SSL-1.94
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.66)
Configuring IO-Socket-SSL-1.94
Running Makefile.PL
Checking if your kit is complete...
Looks good
Warning: prerequisite Net::SSLeay 1.46 not found.
Writing Makefile for IO::Socket::SSL
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have Net::SSLeay 1.46 ... No
Checking if you have Scalar::Util 0 ... Yes (1.25)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.66)
==> Found dependencies: Net::SSLeay
Searching Net::SSLeay on cpanmetadb ...
--> Working on Net::SSLeay
Fetching http://www.cpan.org/authors/id/M/MI/MIKEM/Net-SSLeay-1.55.tar.gz
-> OK
Unpacking Net-SSLeay-1.55.tar.gz
Entering Net-SSLeay-1.55
Checking configure dependencies from META.yml
Checking if you have ExtUtils::MakeMaker 6.36 ... Yes (6.66)
Configuring Net-SSLeay-1.53
Running Makefile.PL
*** Found OpenSSL-1.0.1 installed in /usr
*** Be sure to use the same compiler and options to compile your OpenSSL, perl,
    and Net::SSLeay. Mixing and matching compilers is not supported.
Do you want to run external tests?
These tests *will* *fail* if you do not have network connectivity. [n] n
Checking if your kit is complete...
Looks good
Writing Makefile for Net::SSLeay
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have Test::More 0.60_01 ... Yes (0.98)
Checking if you have MIME::Base64 0 ... Yes (3.13)
Checking if you have ExtUtils::MakeMaker 6.36 ... Yes (6.66)
Building and testing Net-SSLeay-1.53
cp lib/Net/SSLeay.pm blib/lib/Net/SSLeay.pm
AutoSplitting blib/lib/Net/SSLeay.pm (blib/lib/auto/Net/SSLeay)
blib/lib/Net/SSLeay.pm: some names are not unique when truncated to 8 characters:
 directory blib/lib/auto/Net/SSLeay:
  do_https3.al, do_https2.al, do_https4.al, do_https.al truncate to do_https
  do_httpx3.al, do_httpx2.al, do_httpx4.al truncate to do_httpx
  get_https.al, get_https3.al, get_https4.al, get_http.al, get_http3.al, get_http4.al, get_httpx.al, get_httpx3.al, get_httpx4.al truncate to get_http
  head_https.al, head_https3.al, head_https4.al, head_http.al, head_http3.al, head_http4.al, head_httpx.al, head_httpx3.al, head_httpx4.al truncate to head_htt
  post_https.al, post_https3.al, post_https4.al, post_http.al, post_http3.al, post_http4.al, post_httpx.al, post_httpx3.al, post_httpx4.al truncate to post_htt
  put_https.al, put_https3.al, put_https4.al, put_http.al, put_http3.al, put_http4.al, put_httpx.al, put_httpx3.al, put_httpx4.al truncate to put_http
  ssl_read_all.al, ssl_read_until.al, ssl_read_CRLF.al truncate to ssl_read
  ssl_write_all.al, ssl_write_CRLF.al truncate to ssl_writ
  tcp_read_all.al, tcp_read_until.al, tcp_read_CRLF.al truncate to tcp_read
  tcp_write_all.al, tcp_write_CRLF.al truncate to tcp_writ
cp lib/Net/SSLeay.pod blib/lib/Net/SSLeay.pod
cp lib/Net/SSLeay/Handle.pm blib/lib/Net/SSLeay/Handle.pm
/home/ubuntu/perl5/perlbrew/perls/perl-5.16.3/bin/perl "-Iinc" /home/ubuntu/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/ExtUtils/xsubpp  -typemap /home/ubuntu/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/ExtUtils/typemap -typemap typemap  SSLeay.xs > SSLeay.xsc && mv SSLeay.xsc SSLeay.c
cc -c   -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g   -DVERSION=\"1.55\" -DXS_VERSION=\"1.55\" -fPIC "-I/home/ubuntu/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/x86_64-linux/CORE"   SSLeay.c
SSLeay.xs:153:25: fatal error: openssl/err.h: No such file or directory
compilation terminated.
make: *** [SSLeay.o] Error 1
-> FAIL Installing Net::SSLeay failed. See /home/ubuntu/.cpanm/build.log for details.
-> FAIL Installing the dependencies failed: Module 'Net::SSLeay' is not installed
-> FAIL Bailing out the installation for IO-Socket-SSL-1.94. Retry with --prompt or --force.
-> FAIL Installing the dependencies failed: Module 'IO::Socket::SSL' is not installed
-> FAIL Bailing out the installation for LWP-Protocol-https-6.04. Retry with --prompt or --force.
-> FAIL Installing the dependencies failed: Module 'LWP::Protocol::https' is not installed
-> FAIL Bailing out the installation for CPAN-Uploader-0.103004. Retry with --prompt or --force.

I searched for these erors, but didn’t get any solution, so I asked on #distzilla on MAGnet. A person named leont said that it’s due to libssl-dev package. Net::SSLeay is an XS module and XS modules need some C header files. So to resolve this issue, I installed libssl-dev (I use XUbuntu).

Credits: Thanks to leont 🙂

24 thoughts on “Problem installing in Net::SSLeay

  1. Do you know where I can find this library for SUSE LInux 11 SP3? I have searched all over the place and could not find the right lib. I would appreciate if you can let me know how I can resolve this dependency issue. I tried to install this through yast and yast could not find this lib. I also added the repo and still didn’t help. Please advise.

  2. Top Tipp! On RHEL6 I have to install openssl-static openssl-perl and openssl-devel, then Net::SSLeay and Crypt::SSLeay can be installed without errors.
    Thank you!

  3. Pingback: Perl Dist::Zilla doesn’t install because of Net::SSLeay on Debian Wheezy | Zagara Answers

  4. Thanks a lot! Top of the google search results when I pasted my build error. Kept banging my head on the desk trying to figure out why SSLeay was failing to install via cpan or manual.

    “openssl/err.h: No such file or directory”

Leave a reply to Upasana Shukla Cancel reply