Perl CPAN模块的依赖问题
我尝试通过 CPAN 在 Ubuntu 8.04 Server 上安装 SOAP::WSDL
但收到以下错误消息:
cpan> install SOAP::WSDL
Running install for module SOAP::WSDL
Running make for M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz
Checksum for /root/.cpan/sources/authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz ok
SOAP-WSDL-2.00.10/
SOAP-WSDL-2.00.10/benchmark/
(skipped many lines)
SOAP-WSDL-2.00.10/README
CPAN.pm: Going to build M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz
# running Build.PL --installdirs site
Creating new 'MYMETA.yml' with configuration results
Creating new 'Build' script for 'SOAP-WSDL' version '2.00.10'
Prereq '0.0.5' for 'Class::Std::Fast' is not supported by Module::Build::Compat
Running make test
Make had some problems, maybe interrupted? Won't test
Running make install
Make had some problems, maybe interrupted? Won't install
我有最新版本的 Class::Std::Fast
和 Module::Build::Compat
:
$ perl -MModule::Build::Compat -e 'print $Module::Build::Compat::VERSION;'
0.3607
$ perl -MClass::Std::Fast -e 'print $Class::Std::Fast::VERSION;'
0.0.8
知道如何解决这个问题吗?也许我需要将 Class::Std::Fast
降级到版本 0.0.5?
I tried to install SOAP::WSDL
on Ubuntu 8.04 Server through CPAN but got the following error message:
cpan> install SOAP::WSDL
Running install for module SOAP::WSDL
Running make for M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz
Checksum for /root/.cpan/sources/authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz ok
SOAP-WSDL-2.00.10/
SOAP-WSDL-2.00.10/benchmark/
(skipped many lines)
SOAP-WSDL-2.00.10/README
CPAN.pm: Going to build M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz
# running Build.PL --installdirs site
Creating new 'MYMETA.yml' with configuration results
Creating new 'Build' script for 'SOAP-WSDL' version '2.00.10'
Prereq '0.0.5' for 'Class::Std::Fast' is not supported by Module::Build::Compat
Running make test
Make had some problems, maybe interrupted? Won't test
Running make install
Make had some problems, maybe interrupted? Won't install
I have the latest versions of Class::Std::Fast
and Module::Build::Compat
:
$ perl -MModule::Build::Compat -e 'print $Module::Build::Compat::VERSION;'
0.3607
$ perl -MClass::Std::Fast -e 'print $Class::Std::Fast::VERSION;'
0.0.8
Any idea how to solve the problem? Perhaps I need to downgrade Class::Std::Fast
to version 0.0.5?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
长话短说,看起来您的 CPAN 安装更喜欢使用兼容性 Makefile.PL 而不是 Build.PL。它应该更喜欢 Build.PL。 Makefile.PL 仅用于兼容性,可能不具有 Module::Build 的所有功能,例如支持三部分版本。
启动
cpan
。o conf
会让您看到您的配置。如果prefer_installer
未设置为 MB,则执行o conf Preferred_installer MB
。您可能必须o conf commit
来保存它(它会告诉您)。您可能还需要从 libmodule-build-perl 包或 CPAN 安装 Module::Build。已向 SOAP::WSDL 报告错误。
PS 您可以通过首先安装 Class::Std::Fast 来解决此问题,手动下载 SOAP::WSDL,编辑 Build.PL 以删除该依赖项,然后在 SOAP::WSDL 中运行
cpan .
安装它及其依赖项的目录。Long story short, it looks like your CPAN installation is preferring to use the compatibility Makefile.PL instead of the Build.PL. It should prefer the Build.PL. The Makefile.PLs were intended for compatibility only and may not have all the features of Module::Build, such as supporting three part versions.
Fire up
cpan
.o conf
will let you see your configuration. Ifprefer_installer
isn't set to MB then doo conf prefer_installer MB
. You may have too conf commit
to save it (it will tell you). You may also have to install Module::Build, either from thelibmodule-build-perl
package or from CPAN.Bug reported to SOAP::WSDL.
PS You can work around this by installing Class::Std::Fast first, download SOAP::WSDL manually, edit the Build.PL to remove that dependency, and run
cpan .
in SOAP::WSDL's directory to install it and its deps.您的 CPAN 版本是什么?还有配置? (cpan shell 提示符处的
o conf
。)嗯,一切看起来都不错。除非由于某种原因 CPAN 无法加载 Module::Build?
您可以从新的 CPAN shell 再次尝试安装,而不使用以前的命令吗?
或者尝试在不使用 CPAN.pm 的情况下进行手动安装?
What is your CPAN version? And configuration? (
o conf
at the cpan shell prompt.)Hmm, that all looks ok. Unless for some reason CPAN wasn't able to load Module::Build?
Can you try the install again from a fresh CPAN shell, with no previous commands?
Or try doing a manual install without using CPAN.pm?
试试吧,
我
忘了说些什么,如果你试图用 root 用户安装模块,Ubuntu 会修改软件包,忘了吧。使用
local::lib
重试。完成后,执行:
最后,
它应该可以解决您的问题。
Try it,
and
And I forget to say something, the Ubuntu modify the packages if you are trying to install modules with root user, forget. Try again with
local::lib
.After you do it, do:
and finally,
It should solve your problem.