title: cpanm perl module installation failed on 'make' and 'make test'
body: <p>I asked a question regarding <a href="https://stackoverflow.com/questions/36988184/configure-does-not-generate-makefile-while-building-perl-from-source/36993557#36993557">configure does not generate makefile while building perl from source</a>. While awaiting for a solution, here is another (possibly relevant) question. When I install perl modules for the system perl via something like <code>sudo cpanm Try::Tiny</code> it fails with following log:</p>
  
  <pre><code>cpanm (App::cpanminus) 1.7040 on perl 5.018002 built for x86_64-linux-gnu-thread-multi
  Work directory is /home/zxu/.cpanm/work/1462290395.17141
  You have make /usr/bin/make
  You have LWP 6.05
  You have /bin/tar: tar (GNU tar) 1.27.1
  Copyright (C) 2013 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;.
  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 Try::Tiny () on cpanmetadb ...
  --&gt; Working on Try::Tiny
  Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Try-Tiny-0.24.tar.gz
  -&gt; OK
  Unpacking Try-Tiny-0.24.tar.gz
  Entering Try-Tiny-0.24
  Checking configure dependencies from META.json
  Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (6.66)
  Configuring Try-Tiny-0.24
  Running Makefile.PL
  Checking if your kit is complete...
  Warning: the following files are missing in your kit:
          lib/Try/Tiny.pm
          maint/bench.pl
          t/00-report-prereqs.dd
          t/00-report-prereqs.t
          t/basic.t
          t/context.t
          t/erroneous_usage.t
          t/finally.t
          t/given_when.t
          t/global_destruction_forked.t
          t/global_destruction_load.t
          t/lib/TryUser.pm
          t/named.t
          t/when.t
          xt/author/00-compile.t
          xt/author/eol.t
          xt/author/kwalitee.t
          xt/author/mojibake.t
          xt/author/no-tabs.t
          xt/author/pod-coverage.t
          xt/author/pod-spell.t
          xt/author/pod-syntax.t
          xt/release/changes_has_content.t
          xt/release/cpan-changes.t
          xt/release/distmeta.t
          xt/release/pod-no404s.t
          xt/release/portability.t
  Please inform the author.
  Wide character in print at /usr/share/perl/5.18/ExtUtils/MakeMaker.pm line 1034.
  Wide character in print at /usr/share/perl/5.18/ExtUtils/MakeMaker.pm line 1034.
  Wide character in print at /usr/share/perl/5.18/ExtUtils/MakeMaker.pm line 1034.
  Writing Makefile for Try::Tiny
  Writing MYMETA.yml and MYMETA.json
  -&gt; OK
  Checking dependencies from MYMETA.json ...
  Checking if you have warnings 0 ... Yes (1.18)
  Checking if you have constant 0 ... Yes (1.27)
  Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.66)
  Checking if you have if 0 ... Yes (0.0602)
  Checking if you have strict 0 ... Yes (1.07)
  Checking if you have Exporter 5.57 ... Yes (5.68)
  Checking if you have File::Spec 0 ... Yes (3.40)
  Checking if you have Carp 0 ... Yes (1.29)
  Checking if you have Test::More 0 ... Yes (1.001014)
  Building and testing Try-Tiny-0.24
  PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
  # 
  # Versions for all modules listed in MYMETA.json (including optional ones):
  # 
  # === Configure Requires ===
  # 
  #     Module              Want Have
  #     ------------------- ---- ----
  #     ExtUtils::MakeMaker  any 6.66
  # 
  # === Build Requires ===
  # 
  #     Module              Want Have
  #     ------------------- ---- ----
  #     ExtUtils::MakeMaker  any 6.66
  # 
  # === Test Requires ===
  # 
  #     Module              Want     Have
  #     ------------------- ---- --------
  #     ExtUtils::MakeMaker  any     6.66
  #     File::Spec           any     3.40
  #     Test::More           any 1.001014
  #     if                   any   0.0602
  # 
  # === Test Recommends ===
  # 
  #     Module            Want     Have
  #     ------------- -------- --------
  #     CPAN::Meta    2.120900 2.133380
  #     Capture::Tiny     0.12  missing
  # 
  # === Test Suggests ===
  # 
  #     Module    Want    Have
  #     --------- ---- -------
  #     Sub::Util  any missing
  # 
  # === Runtime Requires ===
  # 
  #     Module   Want Have
  #     -------- ---- ----
  #     Carp      any 1.29
  #     Exporter 5.57 5.68
  #     constant  any 1.27
  #     strict    any 1.07
  #     warnings  any 1.18
  # 
  # === Other Modules ===
  # 
  #     Module           Have
  #     ------------- -------
  #     Pod::Coverage missing
  # 
  t/00-report-prereqs.t .......... ok
  Can't locate Try/Tiny.pm in @INC (you may need to install the Try::Tiny module) (@INC contains: /home/zxu/.cpanm/work/1462290395.17141/Try-Tiny-0.24/blib/lib /home/zxu/.cpanm/work/1462290395.17141/Try-Tin
  y-0.24/blib/arch /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at t/basic.t line 8.
  BEGIN failed--compilation aborted at t/basic.t line 8.
  # Looks like your test exited with 2 before it could output anything.
  t/basic.t ...................... 
  Dubious, test returned 2 (wstat 512, 0x200)
  Failed 25/25 subtests 
  Can't locate Try/Tiny.pm in @INC (you may need to install the Try::Tiny module) (@INC contains: /home/zxu/.cpanm/work/1462290395.17141/Try-Tiny-0.24/blib/lib /home/zxu/.cpanm/work/1462290395.17141/Try-Tiny-0.24/blib/arch /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at t/context.t line 6.
  BEGIN failed--compilation aborted at t/context.t line 6.
  ... ... ##more tests failure
  Test Summary Report
  -------------------
  t/basic.t                    (Wstat: 512 Tests: 0 Failed: 0)
    Non-zero exit status: 2
    Parse errors: Bad plan.  You planned 25 tests but ran 0.
  t/context.t                  (Wstat: 512 Tests: 0 Failed: 0)
    Non-zero exit status: 2
    Parse errors: No plan found in TAP output
  t/erroneous_usage.t          (Wstat: 512 Tests: 0 Failed: 0)
    Non-zero exit status: 2
    Parse errors: Bad plan.  You planned 8 tests but ran 0.
  t/finally.t                  (Wstat: 512 Tests: 0 Failed: 0)
    Non-zero exit status: 2
    Parse errors: Bad plan.  You planned 27 tests but ran 0.
  t/given_when.t               (Wstat: 512 Tests: 0 Failed: 0)
    Non-zero exit status: 2
    Parse errors: Bad plan.  You planned 2 tests but ran 0.
  t/global_destruction_forked.t (Wstat: 512 Tests: 0 Failed: 0)
    Non-zero exit status: 2
    Parse errors: Bad plan.  You planned 3 tests but ran 0.
  t/when.t                     (Wstat: 512 Tests: 0 Failed: 0)
    Non-zero exit status: 2
    Parse errors: Bad plan.  You planned 5 tests but ran 0.
  Files=10, Tests=1,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.23 cusr  0.02 csys =  0.28 CPU)
  Result: FAIL
  Failed 7/10 test programs. 0/1 subtests failed.
  make: *** [test_dynamic] Error 2
  -&gt; FAIL Installing Try::Tiny failed. See /home/zxu/.cpanm/work/1462290395.17141/build.log for details. Retry with --force to force install it.
  </code></pre>
  
  <p>, and if I run <code>sudo -s</code>, <code>cd</code> to the downloaded module directory and run <code>perl Makefile.PL &amp;&amp; make &amp;&amp; make test</code>, the tests fail again (compared with the cpanm log, no missing file warnings anymore):</p>
  
  <pre><code>Writing Makefile for Try::Tiny
  Wide character in print at /usr/share/perl/5.18/ExtUtils/MakeMaker.pm line 1034.
  Wide character in print at /usr/share/perl/5.18/ExtUtils/MakeMaker.pm line 1034.
  Wide character in print at /usr/share/perl/5.18/ExtUtils/MakeMaker.pm line 1034.
  Writing MYMETA.yml and MYMETA.json
  PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
  t/00-report-prereqs.t .......... # 
  # Versions for all modules listed in MYMETA.json (including optional ones):
  # 
  # === Configure Requires ===
  # 
  #     Module              Want Have
  #     ------------------- ---- ----
  #     ExtUtils::MakeMaker  any 6.66
  # 
  # === Build Requires ===
  # 
  #     Module              Want Have
  #     ------------------- ---- ----
  #     ExtUtils::MakeMaker  any 6.66
  # 
  # === Test Requires ===
  # 
  #     Module              Want     Have
  #     ------------------- ---- --------
  #     ExtUtils::MakeMaker  any     6.66
  #     File::Spec           any     3.40
  #     Test::More           any 1.001014
  #     if                   any   0.0602
  # 
  # === Test Recommends ===
  # 
  #     Module            Want     Have
  #     ------------- -------- --------
  #     CPAN::Meta    2.120900 2.133380
  #     Capture::Tiny     0.12  missing
  # 
  # === Test Suggests ===
  # 
  #     Module    Want    Have
  #     --------- ---- -------
  #     Sub::Util  any missing
  # 
  # === Runtime Requires ===
  # 
  #     Module   Want Have
  #     -------- ---- ----
  #     Carp      any 1.29
  #     Exporter 5.57 5.68
  #     constant  any 1.27
  #     strict    any 1.07
  #     warnings  any 1.18
  # 
  # === Other Modules ===
  # 
  #     Module           Have
  #     ------------- -------
  #     Pod::Coverage missing
  # 
  t/00-report-prereqs.t .......... ok   
  t/basic.t ...................... Can't locate Try/Tiny.pm in @INC (you may need to install the Try::Tiny module) (@INC contains: /home/zxu/.cpanm/work/1462290395.17141/Try-Tiny-0.24/blib/lib /home/zxu/.cp
  anm/work/1462290395.17141/Try-Tiny-0.24/blib/arch /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/s
  ite_perl .) at t/basic.t line 8.
  BEGIN failed--compilation aborted at t/basic.t line 8.
  # Looks like your test exited with 2 before it could output anything.
  t/basic.t ...................... Dubious, test returned 2 (wstat 512, 0x200)
  Failed 25/25 subtests 
  t/context.t .................... Can't locate Try/Tiny.pm in @INC (you may need to install the Try::Tiny module) (@INC contains: /home/zxu/.cpanm/work/1462290395.17141/Try-Tiny-0.24/blib/lib /home/zxu/.cp
  anm/work/1462290395.17141/Try-Tiny-0.24/blib/arch /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/s
  ite_perl .) at t/context.t line 6.
  BEGIN failed--compilation aborted at t/context.t line 6.
  ... ... ##more tests failure
  </code></pre>
  
  <p>It seems the module Try::Tiny is not installed successfully since <code>make</code> didn't spit out any log message and the test couldn't locate the module in @INC. I am on Ubuntu 14.04 (kernel 3.13.0-24-generic), and using apt-get install for module installation is ok. The output from <code>perl -V</code> is:</p>
  
  <pre><code>Summary of my perl5 (revision 5 version 18 subversion 2) configuration:
  
    Platform:
      osname=linux, osvers=3.13.0-79-generic, archname=x86_64-linux-gnu-thread-multi
      uname='linux lgw01-37 3.13.0-79-generic #123-ubuntu smp fri feb 19 14:27:58 utc 2016 x86_64 x86_64 x86_64 gnulinux '
      config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Dldflags= -Wl,-Bsymbolic-functions
   -Wl,-z,relro -Dlddlflags=-shared -Wl,-Bsymbolic-functions -Wl,-z,relro -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.18 -Darchlib=/usr/lib/perl/5.18 -Dvendorpre
  fix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.18.2 -Dsitearch=/usr/local/lib/perl/5.18.2 -Dman1dir=/usr/share/man/man1 -Dman3d
  ir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uus
  enm -Ui_libutil -Uversiononly -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.18.2 -des'
      hint=recommended, useposix=true, d_sigaction=define
      useithreads=define, usemultiplicity=define
      useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
      use64bitint=define, use64bitall=define, uselongdouble=undef
      usemymalloc=n, bincompat5005=undef
    Compiler:
      cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
      optimize='-O2 -g',
      cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include'
      ccversion='', gccversion='4.8.2', gccosandvers=''
      intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
      d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
      ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
      alignbytes=8, prototype=define
    Linker and Libraries:
      ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
      libpth=/usr/local/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /usr/lib
      libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
      perllibs=-ldl -lm -lpthread -lc -lcrypt
      libc=, so=so, useshrplib=true, libperl=libperl.so.5.18.2
      gnulibc_version='2.19'
    Dynamic Linking:
      dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
      cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fstack-protector'
  
  Characteristics of this binary (from libperl): 
    Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                          PERL_DONT_CREATE_GVSV
                          PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
                          PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
                          PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_ALL
                          USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                          USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                          USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
                          USE_REENTRANT_API
    Locally applied patches:
          DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN.
          DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove overly restrictive DB_File version check.
          DEBPKG:debian/doc_info - Replace generic man(1) instructions with Debian-specific information.
          DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak enc2xs to follow symlinks and ignore missing @INC directories.
          DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove Errno version check due to upgrade problems with long-running processes.
          DEBPKG:debian/libperl_embed_doc - http://bugs.debian.org/186778 Note that libperl-dev package is required for embedded linking
          DEBPKG:fixes/respect_umask - Respect umask during installation
          DEBPKG:debian/writable_site_dirs - Set umask approproately for site install directories
          DEBPKG:debian/extutils_set_libperl_path - EU:MM: Set location of libperl.a to /usr/lib
          DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or perllocal.pod for perl or vendor
          DEBPKG:debian/prefix_changes - Fiddle with *PREFIX and variables written to the makefile
          DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the binary targets.
          DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist files for core or vendor.
          DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as per Debian policy.
          DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable.
          DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
          DEBPKG:debian/module_build_man_extensions - http://bugs.debian.org/479460 Adjust Module::Build manual page extensions for the Debian Perl policy
          DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the list of libraries wanted to what we actually need.
          DEBPKG:fixes/net_smtp_docs - [rt.cpan.org #36038] http://bugs.debian.org/100195 Document the Net::SMTP 'Port' option
          DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp skip include directories in /usr/local
          DEBPKG:debian/cpanplus_definstalldirs - http://bugs.debian.org/533707 Configure CPANPLUS to use the site directories by default.
          DEBPKG:debian/cpanplus_config_path - Save local versions of CPANPLUS::Config::System into /etc/perl.
          DEBPKG:debian/deprecate-with-apt - http://bugs.debian.org/702096 Point users to Debian packages of deprecated core modules
          DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org/508764 Squelch locale warnings in Debian package maintainer scripts
          DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the upstream Git repository
          DEBPKG:debian/patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.18.2-2ubuntu1.1 in patchlevel.h
          DEBPKG:debian/skip-kfreebsd-crash - http://bugs.debian.org/628493 [perl #96272] Skip a crashing test case in t/op/threads.t on GNU/kFreeBSD
          DEBPKG:fixes/document_makemaker_ccflags - http://bugs.debian.org/628522 [rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags}
          DEBPKG:debian/find_html2text - http://bugs.debian.org/640479 Configure CPAN::Distribution with correct name of html2text
          DEBPKG:debian/hurd_test_skip_stack - http://bugs.debian.org/650175 Disable failing GNU/Hurd tests dist/threads/t/stack.t
          DEBPKG:fixes/manpage_name_Test-Harness - http://bugs.debian.org/650451 [rt.cpan.org #73399] cpan/Test-Harness: add NAME headings in modules with POD
          DEBPKG:debian/makemaker-pasthru - http://bugs.debian.org/660195 [rt.cpan.org #28632] Make EU::MM pass LD through to recursive Makefile.PL invocations
          DEBPKG:debian/perl5db-x-terminal-emulator.patch - http://bugs.debian.org/668490 Invoke x-terminal-emulator rather than xterm in perl5db.pl
          DEBPKG:debian/cpan-missing-site-dirs - http://bugs.debian.org/688842 Fix CPAN::FirstTime defaults with nonexisting site dirs if a parent is writable
          DEBPKG:fixes/memoize_storable_nstore - [rt.cpan.org #77790] http://bugs.debian.org/587650 Memoize::Storable: respect 'nstore' option not respected
          DEBPKG:fixes/net_ftp_failed_command - [rt.cpan.org #37700] http://bugs.debian.org/491062 Net::FTP: cope gracefully with a failed command
          DEBPKG:fixes/perlbug-patchlist - [3541c11] http://bugs.debian.org/710842 [perl #118433] Make perlbug look up the list of local patches at run time
          DEBPKG:fixes/module_metadata_security_doc - [68cdd4b] CVE-2013-1437 documentation fix
          DEBPKG:fixes/module_metadata_taint_fix - [bff978f] http://bugs.debian.org/722210 [rt.cpan.org #88576] untaint version, if needed, in Module::Metadata
          DEBPKG:fixes/IPC-SysV-spelling - http://bugs.debian.org/730558 [rt.cpan.org #86736] Fix spelling of IPC_CREAT in IPC-SysV documentation
          DEBPKG:fixes/fix-undef-source -
          DEBPKG:fixes/CVE-2013-7422.patch - [PATCH] [perl #119505] Segfault from bad backreference
          DEBPKG:fixes/CVE-2014-4330.patch - [PATCH] don't recurse infinitely in Data::Dumper
          DEBPKG:fixes/CVE-2016-2381.patch - [PATCH 1/2] remove duplicate environment variables from environ
    Built under linux
    Compiled at Mar  1 2016 17:15:04
    @INC:
      /etc/perl
      /usr/local/lib/perl/5.18.2
      /usr/local/share/perl/5.18.2
      /usr/lib/perl5
      /usr/share/perl5
      /usr/lib/perl/5.18
      /usr/share/perl/5.18
      /usr/local/lib/site_perl
      .
  </code></pre>
  
  <p>It seems the system perl was built against a different kernel version 3.13.0-79-generic. Could this be the problem? Plz help! Let me know if you need any more info. Thanks.</p>