2

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?

netvope
  • 7,647
  • 7
  • 32
  • 42
  • 4
    Shoot the people who *still* maintain it's ok to use version triplets for their modules, because all the tools *they've* tried don't break? – ysth Aug 15 '10 at 23:18
  • 2
    Shoot the people who still ship Makefile.PLs. Their time has long past; they just gum up the works. – Schwern Aug 16 '10 at 02:54

3 Answers3

6

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
  • 153,029
  • 25
  • 195
  • 336
1

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
  • 96,171
  • 6
  • 121
  • 214
  • CPAN version 1.9402. Link to configuration: http://vmubuntu.lcm.hk/~netvope/cpan_conf.txt – netvope Aug 16 '10 at 00:05
  • @netvope: looks ok; but I don't see why it is even trying to use Module::Build::Compat?? – ysth Aug 16 '10 at 00:23
  • Under what situation would you expected it to use Module::Build::Compat? – netvope Aug 16 '10 at 01:35
  • 1
    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 Aug 16 '10 at 03:01
  • when doing `perl Makefile.PL` instead of `perl Build.PL` – ysth Aug 16 '10 at 03:01
0

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.

daxim
  • 39,270
  • 4
  • 65
  • 132
Mantovani
  • 500
  • 2
  • 7
  • 18