问题
I'm using cpanm
to install Perl modules, but I can't install Thread::Pool
for some reason:
$ sudo cpanm Thread::Pool
fails and the log file says:
cpanm (App::cpanminus) 1.0012 on perl 5.010001 built for i486-linux-gnu-thread-multi
Work directory is /home/dave/.cpanm/work/1284831891.13606
You have make /usr/bin/make
You have LWP 5.834
You have /bin/tar: tar (GNU tar) 1.22
Copyright (C) 2009 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 Thread::Pool on cpanmetadb ...
Fetching http://search.cpan.org/CPAN/authors/id/E/EL/ELIZABETH/Thread-Pool-0.32.tar.gz
-> OK
Unpacking Thread-Pool-0.32.tar.gz
Entering Thread-Pool-0.32
Configuring Thread-Pool-0.32
Running Makefile.PL
Warning: prerequisite Thread::Conveyor 0.15 not found.
Warning: prerequisite Thread::Conveyor::Monitored 0.11 not found.
Checking if your kit is complete...
Looks good
Writing Makefile for Thread::Pool
-> OK
Finding PREREQ from Makefile ...
Checking if you have Thread::Conveyor::Monitored 0.11 ... No
Checking if you have Thread::Conveyor 0.15 ... No
==> Found dependencies: Thread::Conveyor::Monitored, Thread::Conveyor
Searching Thread::Conveyor::Monitored on cpanmetadb ...
Fetching http://search.cpan.org/CPAN/authors/id/E/EL/ELIZABETH/Thread-Conveyor-Monitored-0.12.tar.gz
-> OK
Unpacking Thread-Conveyor-Monitored-0.12.tar.gz
Entering Thread-Conveyor-Monitored-0.12
Configuring Thread-Conveyor-Monitored-0.12
Running Makefile.PL
Warning: prerequisite Thread::Conveyor 0.15 not found.
Checking if your kit is complete...
Looks good
Writing Makefile for Thread::Conveyor::Monitored
-> OK
Finding PREREQ from Makefile ...
Checking if you have Thread::Conveyor 0.15 ... No
Checking if you have load 0 ... Yes (0.19)
==> Found dependencies: Thread::Conveyor
Searching Thread::Conveyor on cpanmetadb ...
Fetching http://search.cpan.org/CPAN/authors/id/E/EL/ELIZABETH/Thread-Conveyor-0.17.tar.gz
-> OK
Unpacking Thread-Conveyor-0.17.tar.gz
Entering Thread-Conveyor-0.17
Configuring Thread-Conveyor-0.17
Running Makefile.PL
Warning: prerequisite Thread::Tie 0.09 not found.
Checking if your kit is complete...
Looks good
Writing Makefile for Thread::Conveyor
-> OK
Finding PREREQ from Makefile ...
Checking if you have Thread::Serialize 0 ... Yes (0.10)
Checking if you have Thread::Tie 0.09 ... No
Checking if you have load 0 ... Yes (0.19)
==> Found dependencies: Thread::Tie
Searching Thread::Tie on cpanmetadb ...
Fetching http://search.cpan.org/CPAN/authors/id/E/EL/ELIZABETH/Thread-Tie-0.12.tar.gz
-> OK
Unpacking Thread-Tie-0.12.tar.gz
Entering Thread-Tie-0.12
Configuring Thread-Tie-0.12
Running Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Thread::Tie
-> OK
Finding PREREQ from Makefile ...
Checking if you have Thread::Serialize 0.07 ... Yes (0.10)
Checking if you have load 0.11 ... Yes (0.19)
Building and testing Thread-Tie-0.12 for Thread::Tie
cp lib/Thread/Tie/Array.pm blib/lib/Thread/Tie/Array.pm
cp lib/Thread/Tie/Handle.pm blib/lib/Thread/Tie/Handle.pm
cp lib/Thread/Tie/Thread.pm blib/lib/Thread/Tie/Thread.pm
cp lib/Thread/Tie.pm blib/lib/Thread/Tie.pm
cp lib/Thread/Tie/Hash.pm blib/lib/Thread/Tie/Hash.pm
cp lib/Thread/Tie/Scalar.pm blib/lib/Thread/Tie/Scalar.pm
Manifying blib/man3/Thread::Tie::Array.3pm
Manifying blib/man3/Thread::Tie::Handle.3pm
Manifying blib/man3/Thread::Tie::Thread.3pm
Manifying blib/man3/Thread::Tie::Hash.3pm
Manifying blib/man3/Thread::Tie.3pm
Manifying blib/man3/Thread::Tie::Scalar.3pm
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/Tie01.t ..
Failed 59/71 subtests
t/Tie02.t ..
Failed 23/26 subtests
Test Summary Report
-------------------
t/Tie01.t (Wstat: 11 Tests: 12 Failed: 0)
Non-zero wait status: 11
Parse errors: Bad plan. You planned 71 tests but ran 12.
t/Tie02.t (Wstat: 11 Tests: 3 Failed: 0)
Non-zero wait status: 11
Parse errors: Bad plan. You planned 26 tests but ran 3.
Files=2, Tests=15, 1 wallclock secs ( 0.02 usr 0.00 sys + 0.89 cusr 0.17 csys = 1.08 CPU)
Result: FAIL
Failed 2/2 test programs. 0/15 subtests failed.
make: *** [test_dynamic] Error 255
-> FAIL Installing Thread::Tie failed. See /home/dave/.cpanm/build.log for details.
-> FAIL Bailing out the installation for Thread-Conveyor-0.17. Retry with --prompt or --force.
-> FAIL Bailing out the installation for Thread-Conveyor-Monitored-0.12. Retry with --prompt or --force.
Already tried Thread::Conveyor. Skipping.
-> FAIL Bailing out the installation for Thread-Pool-0.32. Retry with --prompt or --force.
回答1:
Well, the problem is that Thread::Tie (one of the prerequisites) is failing its tests. According to CPAN Testers, Thread::Tie has never passed its tests on Perl 5.10.1, and has 6 failure reports. The couple I checked look just like yours.
You can use cpanm -n
to skip running the tests and install anyway, but there's no guarantee that the resulting module will work properly. It's possible that the problem is in the test scripts rather than the module itself, but that's not the most likely explanation.
You can try reporting a bug in Thread::Tie, or try debugging it yourself.
回答2:
Thanks for reporting.
I've just uploaded new versions of all modules involved. Fortunately, most of the problems were actually in the test-suites and not in the code itself.
Please let me know if this does solve it for you or not.
Elizabeth Mattijsen
回答3:
Could not install on Strawberry Perl for Windows
Test Summary Report
t/Tie01.t (Wstat: 256 Tests: 71 Failed: 1)
Failed test: 65
Non-zero exit status: 1
Files=2, Tests=97, 3 wallclock secs ( 0.05 usr + 0.00 sys = 0.05 CPU)
Result: FAIL
Failed 1/2 test programs. 1/97 subtests failed.
dmake.exe: Error code 255, while making 'test_dynamic'
ELIZABETH/Thread-Tie-0.13.tar.gz
C:\STRAWB~1\c\bin\dmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports ELIZABETH/Thread-Tie-0.13.tar.gz
Stopping: 'install' failed for 'Thread::Tie'.
来源:https://stackoverflow.com/questions/3742793/how-can-i-install-threadpool-from-cpan