Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Why does Module::Build want rebuild every time

by ait (Hermit)
on Sep 11, 2017 at 14:16 UTC ( #1199112=perlquestion: print w/replies, xml ) Need Help??

ait has asked for the wisdom of the Perl Monks concerning the following question:

Why does Module::Build try to rebuild every time (or most of the time I'm not sure). See example:

perl -e "use Module::Build"
(no errors)
curl -L | perl - -M -n IO::Socket::IP
--> Working on IO::Socket::IP
Fetching ... OK
==> Found dependencies: Module::Build
--> Working on Module::Build
Fetching ... OK
==> Found dependencies: Module::Build
Configuring Module-Build-0.4224 ... OK
Failed to upconvert metadata to 1.1. Errors:
Missing mandatory field, 'version' (version) [Validation: 1.0]
 at - line 32.

So even though Module::Build was installed it will always try to install again. I have noticed this behaviour for many packages. Why is this so? can it be prevented with some switch ?

I'm trying to install Mojolicious on OpenWRT and the native Module::Build intsalls fine but if I try to install via CPAN I get the error above. I want the Arduino YŚN community to have an alternative to Node.JS and Python !! Please help !


  • Comment on Why does Module::Build want rebuild every time

Replies are listed 'Best First'.
Re: Why does Module::Build want rebuild every time
by Corion (Pope) on Sep 11, 2017 at 14:23 UTC

    Maybe a more recent version of Module::Build is available on CPAN.

    I think all CPAN tools will (if you let them) try to upgrade all modules in the direct dependency chain to their most recent version. Maybe IO::Socket::IP requires a certain minimum version of Module::Build to build itself.

    If you want to avoid rebuilding/reinstalling Module::Build, try a manual configuration of IO::Socket::IP using these five commands:

    cpanm --look IO::Socket::IP perl Makefile.PL make make test make install

      Thanks for your prompt reply!

      I was trying to avoid CPAN shell but it all got very complicated after that. Turns out Test::More requires Storable which is XS and that made me install gcc and make, which is not even available, etc. etc. so it got pretty hairy but incredibly I got it working. I actually have Mojolicious running on an Arduino Yśn !!!

      I kept pretty good notes so I decided to make this tutorial to help others and possibly get some collaboration to make this more native to the OpenWRT crowd:

      Embedded Perl: Installing Perl and Mojolicious on Arduino Yśn / OpenWRT ChaosCalmer

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1199112]
Approved by haukex
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (5)
As of 2019-11-17 17:36 GMT
Find Nodes?
    Voting Booth?
    Strict and warnings: which comes first?

    Results (86 votes). Check out past polls.