2016-05-03 95 views
0

我問了一個關於configure does not generate makefile while building perl from source的問題。在等待解決方案時,這裏是另一個(可能相關的)問題。當我通過話了系統perl的安裝Perl模塊像sudo cpanm Try::Tiny失敗與以下日誌:'make'和'make test'cpanm perl模塊安裝失敗

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 <http://gnu.org/licenses/gpl.html>. 
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 ... 
--> Working on Try::Tiny 
Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Try-Tiny-0.24.tar.gz 
-> 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 
-> 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 
-> FAIL Installing Try::Tiny failed. See /home/zxu/.cpanm/work/1462290395.17141/build.log for details. Retry with --force to force install it. 

,如果我跑sudo -scd到下載的模塊目錄,並運行perl Makefile.PL && make && make test,測試再次失敗,(相比在cpanm日誌,沒有丟失的文件警告了):

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 

看來模塊嘗試::微小的,因爲make沒有吐出任何日誌消息和測試無法定位模塊沒有安裝成功@INC。我在Ubuntu 14.04(內核3.13.0-24-通用),並使用apt-get安裝模塊安裝是好的。從perl -V輸出是:

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 
    . 

看來系統的perl構建針對不同的內核版本3.13.0-79泛型。這可能是問題嗎? Plz幫助!讓我知道你是否需要更多信息。謝謝。

+0

當你嘗試用cpanm安裝*任何*模塊到系統perl,或者它只是Try :: Tiny嗎? – ThisSuitIsBlackNot

+0

對於我通過cpanm嘗試的所有模塊,它不會同樣失敗,不僅僅是Try :: Tiny,而是其他例子,如Test :: Simple,Sub :: Uplevel,Statistics :: PCA等。 – pacifly

+1

更新:原來sudo - 我(或者sudo su,sudo su - )而不是sudo -s(或者sudo)將會做到這一點。 sudo -s正在使用用戶的shell環境設置,並且似乎有些東西被搞亂了,但不確定涉及哪些用戶環境變量。 – pacifly

回答

0

根據this mailing list thread,特別是第三篇文章,我建議編輯'/usr/lib/perl//Config.pm',以便將dont_use_nlink設置爲'define'而不是undef。這個解決方案爲我工作。