英文:
Cannot install Webservice::InterMine
问题
我正在尝试在Ubuntu 22.04和perl 5.38.0上安装Webservice::InterMine,但我遇到以下错误:
加载内部日志记录器。建议使用Log::Log4perl进行更好的日志记录
读取'/home/con/.cpan/Metadata'
数据库生成于2023年8月4日17:29:02 GMT
运行模块'Webservice::InterMine'的安装
CPAN: Digest::SHA已成功加载(v6.04)
CPAN: Compress::Zlib已成功加载(v2.204)
检查/home/con/.cpan/sources/authors/id/I/IN/INTERMINE/Webservice-InterMine-1.0405.tar.gz的校验和已成功
CPAN: YAML已成功加载(v1.30)
CPAN: CPAN::Meta::Requirements已成功加载(v2.140)
CPAN: Parse::CPAN::Meta已成功加载(v2.150010)
CPAN: CPAN::Meta已成功加载(v2.150010)
CPAN: Module::CoreList已成功加载(v5.20230520)
CPAN: Module::Build已成功加载(v0.4234)
使用Build.PL配置I/IN/INTERMINE/Webservice-InterMine-1.0405.tar.gz
已创建MYMETA.yml和MYMETA.json
为'Webservice-InterMine'版本'1.0405'创建新的'Build'脚本
INTERMINE/Webservice-InterMine-1.0405.tar.gz
/home/con/perl5/perlbrew/perls/perl-5.38.0/bin/perl Build.PL -- OK
为I/IN/INTERMINE/Webservice-InterMine-1.0405.tar.gz运行Build
正在构建Webservice-InterMine
INTERMINE/Webservice-InterMine-1.0405.tar.gz
./Build -- OK
CPAN: CPAN::DistnameInfo已成功加载(v0.12)
为INTERMINE/Webservice-InterMine-1.0405.tar.gz运行构建测试
t/00-load.t ................................ 1/1 # 测试Webservice::Webservice::InterMine 1.0405,Perl 5.038000,/home/con/perl5/perlbrew/perls/perl-5.38.0/bin/perl
t/00-load.t ................................ OK
t/01_path/01_validate.t .................... OK
t/02_pathfeature/01_pathfeature.t .......... OK
t/03_constraint/01_constraint.t ............ OK
t/03_constraint/02_constraint_factory.t .... OK
t/03_constraint/03_template_constraints.t .. OK
t/03_constraint/04_logic.t ................. OK
t/04_query/01_core.t ....................... OK
t/04_query/02_pathquery.t .................. OK
t/04_query/03_saved.t ...................... OK
t/04_query/03_scripted.t ................... OK
t/04_query/04_template.t ................... OK
t/04_query/05_good_and_bad_templates.t ..... OK
t/05_template/01_factory.t ................. OK
t/06_service/01_service.t .................. OK
t/06_service/02_result_iterator.t .......... OK
t/06_service/03_result_objects.t ........... OK
t/06_service/04_serviced_queries.t ......... OK
t/06_service/05_result_row.t ............... OK
t/06_service/06_test_export_exclusion.t .... OK
t/06_service/07_test_inclusion.t ........... OK
t/07_intermine/01_integration.t ............ 1/44
# 无法使用'Webservice::InterMine'
# 在t/07_intermine/01_integration.t的第87行出错。
# 试图使用'Webservice::InterMine'。
# 错误:无法在/home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine/Service.pm的第833行上调用"host"方法的未定义值。
# 在/home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine/Service.pm的第833行。
# Webservice::InterMine::Service::fetch(Webservice::InterMine::Service=HASH(0x564ecb9444a0),"http://fake.url/path/service/version")在/home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine/Service.pm的第219行被调用
# Webservice::InterMine::Service::__ANON__(Webservice::InterMine::Service=HASH(0x564ecb9444a0))在构造函数Webservice::InterMine::Service::new(在/home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine/Service.pm的第913行定义)的第141行被调用
# Webservice::InterMine::Service::new("Webservice::InterMine::Service","fake.url/path")在/home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine.pm的第463行被调用
# Webservice::InterMine::get_service("Webservice::InterMine","fake.url/path")在/home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine.pm的第207行被调用
# Webservice::InterMine::import("Webservice::InterMine","fake.url/path")在t/07_intermine/01_integration.t的第87行被调用
# main::BEGIN()在t/07_intermine/01_integration.t的第87行被调用
# eval {...}在t/07_intermine/01_integration.t的第87行被调用
# eval 'package main;
# BEGIN { ${^WARNING_BITS} = $args[-1] if defined $args[-1] }
# #line 87 t/07_intermine/01_integration.t
# use Webservice::InterMine @{$args[0]};
# 1;
# '在/home/con/perl5/perlbrew/perls/perl-5.38.0/lib/5.38.0/Test/More.pm的第1056行被调用
# Test::More::_eval('package main; BEGIN { ${^WARNING_BITS} = $args[-1] if defined',ARRAY(0x564ec7c55fa0),“UUUUUUUUUUUUUUUUUUUU”)在/home/con/perl5/perlbrew/perls/perl-5.38.0/lib/5.38.0/Test/More.pm的第1031行被调用
# Test::More::use_ok("Webservice::InterMine","fake.url/path")在t/
<details>
<summary>英文:</summary>
I'm attempting to install Webservice::InterMine on Ubuntu 22.04 and perl 5.38.0, but I get the following error:
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/home/con/.cpan/Metadata'
Database was generated on Fri, 04 Aug 2023 17:29:02 GMT
Running install for module 'Webservice::InterMine'
CPAN: Digest::SHA loaded ok (v6.04)
CPAN: Compress::Zlib loaded ok (v2.204)
Checksum for /home/con/.cpan/sources/authors/id/I/IN/INTERMINE/Webservice-InterMine-1.0405.tar.gz ok
CPAN: YAML loaded ok (v1.30)
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
CPAN: Module::CoreList loaded ok (v5.20230520)
CPAN: Module::Build loaded ok (v0.4234)
Configuring I/IN/INTERMINE/Webservice-InterMine-1.0405.tar.gz with Build.PL
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Webservice-InterMine' version '1.0405'
INTERMINE/Webservice-InterMine-1.0405.tar.gz
/home/con/perl5/perlbrew/perls/perl-5.38.0/bin/perl Build.PL -- OK
Running Build for I/IN/INTERMINE/Webservice-InterMine-1.0405.tar.gz
Building Webservice-InterMine
INTERMINE/Webservice-InterMine-1.0405.tar.gz
./Build -- OK
CPAN: CPAN::DistnameInfo loaded ok (v0.12)
Running Build test for INTERMINE/Webservice-InterMine-1.0405.tar.gz
t/00-load.t ................................ 1/1 # Testing Webservice::Webservice::InterMine 1.0405, Perl 5.038000, /home/con/perl5/perlbrew/perls/perl-5.38.0/bin/perl
t/00-load.t ................................ ok
t/01_path/01_validate.t .................... ok
t/02_pathfeature/01_pathfeature.t .......... ok
t/03_constraint/01_constraint.t ............ ok
t/03_constraint/02_constraint_factory.t .... ok
t/03_constraint/03_template_constraints.t .. ok
t/03_constraint/04_logic.t ................. ok
t/04_query/01_core.t ....................... ok
t/04_query/02_pathquery.t .................. ok
t/04_query/03_saved.t ...................... ok
t/04_query/03_scripted.t ................... ok
t/04_query/04_template.t ................... ok
t/04_query/05_good_and_bad_templates.t ..... ok
t/05_template/01_factory.t ................. ok
t/06_service/01_service.t .................. ok
t/06_service/02_result_iterator.t .......... ok
t/06_service/03_result_objects.t ........... ok
t/06_service/04_serviced_queries.t ......... ok
t/06_service/05_result_row.t ............... ok
t/06_service/06_test_export_exclusion.t .... ok
t/06_service/07_test_inclusion.t ........... ok
t/07_intermine/01_integration.t ............ 1/44
# Failed test 'use Webservice::InterMine;'
# at t/07_intermine/01_integration.t line 87.
# Tried to use 'Webservice::InterMine'.
# Error: Can't call method "host" on an undefined value at /home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine/Service.pm line 833.
# at /home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine/Service.pm line 833.
# Webservice::InterMine::Service::fetch(Webservice::InterMine::Service=HASH(0x564ecb9444a0), "http://fake.url/path/service/version") called at /home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine/Service.pm line 219
# Webservice::InterMine::Service::__ANON__(Webservice::InterMine::Service=HASH(0x564ecb9444a0)) called at constructor Webservice::InterMine::Service::new (defined at /home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine/Service.pm line 913) line 141
# Webservice::InterMine::Service::new("Webservice::InterMine::Service", "fake.url/path") called at /home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine.pm line 463
# Webservice::InterMine::get_service("Webservice::InterMine", "fake.url/path") called at /home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine.pm line 207
# Webservice::InterMine::import("Webservice::InterMine", "fake.url/path") called at t/07_intermine/01_integration.t line 87
# main::BEGIN() called at t/07_intermine/01_integration.t line 87
# eval {...} called at t/07_intermine/01_integration.t line 87
# eval 'package main;
# BEGIN { ${^WARNING_BITS} = $args[-1] if defined $args[-1] }
# #line 87 t/07_intermine/01_integration.t
# use Webservice::InterMine @{$args[0]};
# 1;
# ' called at /home/con/perl5/perlbrew/perls/perl-5.38.0/lib/5.38.0/Test/More.pm line 1056
# Test::More::_eval("package main;\x{a}BEGIN { \${^WARNING_BITS} = \$args[-1] if defined"..., ARRAY(0x564ec7c55fa0), "UUUUUUUUUUUUUUUUUUUU") called at /home/con/perl5/perlbrew/perls/perl-5.38.0/lib/5.38.0/Test/More.pm line 1031
# Test::More::use_ok("Webservice::InterMine", "fake.url/path") called at t/07_intermine/01_integration.t line 87
# BEGIN failed--compilation aborted at t/07_intermine/01_integration.t line 87.
# at t/07_intermine/01_integration.t line 87.
# eval 'package main;
# BEGIN { ${^WARNING_BITS} = $args[-1] if defined $args[-1] }
# #line 87 t/07_intermine/01_integration.t
# use Webservice::InterMine @{$args[0]};
# 1;
# ' called at /home/con/perl5/perlbrew/perls/perl-5.38.0/lib/5.38.0/Test/More.pm line 1056
# Test::More::_eval("package main;\x{a}BEGIN { \${^WARNING_BITS} = \$args[-1] if defined"..., ARRAY(0x564ec7c55fa0), "UUUUUUUUUUUUUUUUUUUU") called at /home/con/perl5/perlbrew/perls/perl-5.38.0/lib/5.38.0/Test/More.pm line 1031
# Test::More::use_ok("Webservice::InterMine", "fake.url/path") called at t/07_intermine/01_integration.t line 87
No url provided - either directly or on 'use' at t/07_intermine/01_integration.t line 89.
at /home/con/.cpan/build/Webservice-InterMine-1.0405-1/blib/lib/Webservice/InterMine.pm line 457.
Webservice::InterMine::get_service("Webservice::InterMine") called at t/07_intermine/01_integration.t line 89
# Looks like your test exited with 255 just after 1.
t/07_intermine/01_integration.t ............ Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 44/44 subtests
t/10_acceptance/01_live_test.t ............. skipped: Acceptance tests for release testing only
t/10_acceptance/02_lists.t ................. skipped: Acceptance tests for release testing only
t/10_acceptance/02_lists_with_tokens.t ..... skipped: Acceptance tests for release testing only
t/10_acceptance/04_paths.t ................. skipped: Acceptance tests for release testing only
t/10_acceptance/05_summaries.t ............. skipped: Acceptance tests for release testing only
t/10_acceptance/06_redirection.t ........... skipped: Acceptance tests for release testing only
t/10_acceptance/07_lazy_references.t ....... skipped: Acceptance tests for release testing only
t/10_acceptance/08_enrichment.t ............ skipped: Acceptance tests for release testing only
t/10_acceptance/09_widgets.t ............... skipped: Acceptance tests for release testing only
t/10_acceptance/10_id_resolution.t ......... skipped: Acceptance tests for release testing only
t/manifest.t ............................... skipped: Author tests not required for installation
t/moose-hygiene.t .......................... ok
t/pod-coverage.t ........................... skipped: Complete documentation coverage is coming shortly
t/pod.t .................................... ok
Test Summary Report
-------------------
t/07_intermine/01_integration.t (Wstat: 65280 (exited 255) Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 255
Parse errors: Bad plan. You planned 44 tests but ran 1.
Files=36, Tests=4540, 23 wallclock secs ( 0.26 usr 0.04 sys + 21.69 cusr 0.72 csys = 22.71 CPU)
Result: FAIL
Failed 1/36 test programs. 1/4540 subtests failed.
INTERMINE/Webservice-InterMine-1.0405.tar.gz
./Build test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports INTERMINE/Webservice-InterMine-1.0405.tar.gz
how can I install this package?
</details>
# 答案1
**得分**: 1
"The WebService::InterMine module was last released in 2013, and is suffering from drift in the HTTP::Response module (from the LWP distro) on which it depends. See [Perl/perl5#20447](https://github.com/Perl/perl5/issues/20447). To use WebService::InterMine, you need to fix it for the latest HTTP::Response. It looks like the problem is that there is a missing header.
There is another way, that's quite a bit of work and likely to cause problems in other areas. You can use LWP before the breaking change in 6.42. There are various ways to do that, but they tend to be book-length responses."
<details>
<summary>英文:</summary>
The WebService::InterMine module was last released in 2013, and is suffering from drift in the HTTP::Response module (from the LWP distro) on which it depends. See [Perl/perl5#20447](https://github.com/Perl/perl5/issues/20447). To use WebService::InterMine, you need to fix it for the latest HTTP::Response. It looks like the problem is that there is a missing header.
There is another way, that's quite a bit of work and likely to cause problems in other areas. You can use LWP before the breaking change in 6.42. There are various ways to do that, but they tend to be book-length responses.
</details>
# 答案2
**得分**: 0
这个 bug 已经被[之前报告过](https://github.com/Perl/perl5/issues/20447)。
由于安装失败是在运行测试时发生的,您可以通过执行以下命令来安装这个模块:
cpanm --notest Webservice::InterMine
<details>
<summary>英文:</summary>
This bug has been [previously reported](https://github.com/Perl/perl5/issues/20447).
Since the installation failure is in running tests, you should be able to install the module by doing:
cpanm --notest Webservice::InterMine
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论