Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Automating install of modules that need Makefile.PL args with CPAN

by rsmah (Scribe)
on Dec 12, 2007 at 19:36 UTC ( [id://656694]=perlquestion: print w/replies, xml ) Need Help??

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

I'm trying to automate the install of modules from a script. One is Template Toolkit 2. The Makefile.PL for TT2 interactively asks questions. This is bad. However, you can pass args to Makefile.PL to make it quiet. This is good.

I've tried to call cpan in a variety of ways, including setting $CPAN::Config->{makepl_arg} = "..." or calling CPAN::Shell->o("conf", "makepl_arg", "...") but they don't seem to work! The next call to make/test/install doesn't seem to use the options I specified. Anyone know what's going on?

Just FYI, I'm trying this:

perl -MCPAN -e'CPAN::Shell->o("conf", "makepl_arg", "TT_ACCEPT=y TT_QUIET=y"); make Template'

I've also tried:

perl -MCPAN -e'CPAN::Shell->o("conf", "makepl_arg", "TT_ACCEPT=y TT_QUIET=y"); CPAN::Shell->make("Template")'

Oh, if there's a way to do this with the cpan wrapper program directly, I'd love to know!

Replies are listed 'Best First'.
Re: Automating install of modules that need Makefile.PL args with CPAN
by eserte (Deacon) on Dec 12, 2007 at 20:25 UTC
    You can use the new distroprefs feature of CPAN.pm.

    Here's my file for Template-Toolkit:

    --- match: distribution: "/Template-Toolkit-2\.18\." disabled: 1 --- match: distribution: "/Template-Toolkit-\d" pl: expect: - "Do you want to build the XS Stash module" - "y\n" - "\QDo you want to use the XS Stash by default? [y]\E" - "y\n" - "Do you want to install these components" - "n\n"
    You can also specify environment variables and command line arguments for every of the build phases (configure, make, test). And many many more things.
Re: Automating install of modules that need Makefile.PL args with CPAN
by Anonymous Monk on Dec 12, 2007 at 20:01 UTC
    #!/usr/bin/perl use strict; use warnings; use CPAN; CPAN::Shell-> install( my::module );

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://656694]
Approved by almut
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2024-04-18 03:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found