views:

179

answers:

3

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?

+1  A: 

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?

ysth
CPAN version 1.9402. Link to configuration: http://vmubuntu.lcm.hk/~netvope/cpan_conf.txt
netvope
@netvope: looks ok; but I don't see why it is even trying to use Module::Build::Compat??
ysth
@ysth: Under what situation would you expected it to use Module::Build::Compat?
netvope
If prefer_installer is set to "eumm" (which I see it isn't). If the dist doesn't have a Build.PL (it does). If Module::Build won't load... which is the open question. See `CPAN::Distribution->choose_MM_or_MB` for details.
Schwern
when doing `perl Makefile.PL` instead of `perl Build.PL`
ysth
A: 

Try it,

cpan Module::Build

and

cpan Module::Build::Compat

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:

cpan install CPAN

and finally,

cpan upgrade

It should solve your problem.

Mantovani
How does "Ubuntu modify the packages if you are trying to install modules with root user"?
netvope
+3  A: 

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. If prefer_installer isn't set to MB then do o conf prefer_installer MB. You may have to o conf commit to save it (it will tell you). You may also have to install Module::Build, either from the libmodule-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.

Schwern