如何使用 cpan 获取 Geo::Coder::Many?

如何使用 cpan 获取 Geo::Coder::Many?

安装 Ubuntu 是为了开发一个Perl项目。

aptitude search Geo-Coder
i   libgeo-coder-googlev3-perl      - Perl module providing access to Google Map

能力并不是指Geo::Coder::Many

cpan 无法构建它。

sudo cpan Geo::Coder::Many

然后:

CPAN:可存储文件已加载成功(v2.27) 将读取“/home/jh/.cpan/Metadata” 数据库生成于 2013 年 10 月 16 日(星期三)06:17:04 GMT 正在运行模块“Geo::Coder::Many”的安装 正在运行 K/KA/KAORU/Geo-Coder-Many-0.42.tar.gz 的 make CPAN:Digest::SHA 已加载成功(v5.61) CPAN:Compress::Zlib 已加载成功(v2.033) /home/jh/.cpan/sources/authors/id/K/KA/KAORU/Geo-Coder-Many-0.42.tar.gz 的校验和已加载成功 CPAN:File::Temp 已加载成功(v0.22) CPAN:Parse::CPAN::Meta 已加载成功(v1.4401) CPAN:CPAN::Meta 已加载成功(v2.110440)CPAN:Module::CoreList 已成功加载(v2.49_02)CPAN:Module::Build 已成功加载(v0.38)

CPAN.pm:将构建 K/KA/KAORU/Geo-Coder-Many-0.42.tar.gz

无法在 @INC 中找到 Geo/Coder/Many/Google.pm(@INC 包含:/etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl 。)位于 /usr/share/perl/5.14/Module/Load.pm 第 27 行。无法在 @INC 中找到 Geo/Coder/Many/Google(@INC 包含:/etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) 在 /usr/share/perl/5.14/Module/Load.pm 第 27 行。BEGIN 失败--编译在 Build.PL 第 54 行中止。警告:命令 [/usr/bin/perl Build.PL --installdirs site] 未成功 CPAN:YAML 已加载 ok (v0.77) KAORU/Geo-Coder-Many-0.42.tar.gz /usr/bin/perl Build.PL --installdirs site -- 不正常 正在运行 Build 测试 Make 遇到一些问题,无法测试 正在运行 Build install Make 遇到一些问题,无法安装 无法读取元数据文件。回退到其他方法来确定先决条件

关于如何解决这个问题有什么建议吗?

答案1

CPAN.pm:将构建 K/KA/KAORU/Geo-Coder-Many-0.42.tar.gz

无法在 @INC 中找到 Geo/Coder/Many/Google.pm (@INC 包含:/etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl 。) 在 /usr/share/perl/5.14/Module/Load.pm 第 27 行。无法找到...

Geo::Coder::Many::Google 是一个与 Geo::Coder::Many 捆绑在一起的插件,用于在 Geo::Coder::Google 和 Geo::Coder::Many 之间进行转换。从此 URL 中可以看到:

https://metacpan.org/source/KAORU/Geo-Coder-Many-0.42/lib/Geo/Coder/Many/Google.pm

(请注意,Geo/Coder/Many/Google.pm 属于 Geo-Coder-Many 0.42 包。)

这意味着在“make test”期间,您的环境未正确配置为在测试期间包含软件包自己的模块。这很奇怪,因为这肯定应该是默认设置@INC$PERL5LIB


更一般地来说:

Geo::Coder::Many 尝试根据您已安装的 Geo::Coder::* 模块动态生成其依赖项列表。值得注意的是,Geo::Coder::Google 和 Geo::Coder::Googlev3 是不同的模块 - 具体来说,Geo::Coder::Google 用于 Google Geocoder API 的第 2 版。

这意味着你问题的第一部分并不完全相关。它不是在 Google v3 支持上失败,而是在 Google v2 支持上失败,你也必须安装它。


我建议尝试:

sudo cpan App::cpanminus
sudo cpanm --sudo --prompt Geo::Coder::Many

然后,假设它再次失败,使用提示选项“检查”构建目录并尝试自己运行“make test”或“./Build test”...或者使用“prove --blib”来测试与您的需求相关的特定 .t 文件。如果一切顺利,您可以使用“exit”退出检查,然后强制安装。

相关内容