Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

scripted cpan configuration

by tphyahoo (Vicar)
on Nov 25, 2006 at 17:04 UTC ( #586024=perlquestion: print w/ replies, xml ) Need Help??
tphyahoo has asked for the wisdom of the Perl Monks concerning the following question:

I have a script where it would be useful to be able to automate my custom cpan configuration.

Currently I have to do this by hand. Something like:

thartman@thartman-laptop:~/nbarter$ cpan cpan shell -- CPAN exploration and modules installation (v1.8802) ReadLine support enabled + + cpan[1]> o conf prerequisites_policy prerequisites_policy [ask] + + cpan[2]> o conf prerequisites_policy follow prerequisites_policy [follow] cpan[4]> o conf commit commit: wrote '/home/thartman/.cpan/CPAN/MyConfig.pm' + + cpan[5]> exit Lockfile removed. thartman@thartman-laptop:~/nbarter$

I had hoped I could do something like cpan 'o conf prerequisites_policy_follow; o conf commit'

but that didn't work. Is there some way to do this using the cpan shell? Or some trick with getting bash to give cpan input so it thinks it's coming from the user?

thanks!

UPDATE: google code search had some good examples that I think I can work with, along with merlyn's column.

Comment on scripted cpan configuration
Select or Download Code
Re: scripted cpan configuration
by merlyn (Sage) on Nov 25, 2006 at 17:07 UTC
Re: scripted cpan configuration
by brian_d_foy (Abbot) on Nov 25, 2006 at 18:22 UTC

    Just create CPAN/Config.pm yourself and put it in a place where it loads before any other CPAN::Config. As long as Perl finds it and it's not missing configuration data, CPAN won't start its interactive configuration. The CPAN::HandleConfig::load method is your map to doing it yourself and avoiding the interactive configuration.

    The CPAN::Config module itself is just an anonymous hash, so you don't have to do that much work to create it yourself. Create the hash with the local values and dump it:

    $CPAN::Config = { 'build_cache' => q[10], 'build_dir' => q[/Users/brian/.cpan/build], 'cache_metadata' => q[1], 'cpan_home' => q[/Users/brian/.cpan], 'dontload_hash' => { }, 'ftp' => q[/usr/bin/ftp], 'ftp_proxy' => q[], 'getcwd' => q[cwd], .... }; 1;
    --
    brian d foy <brian@stonehenge.com>
    Subscribe to The Perl Review

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://586024]
Approved by davido
Front-paged by brian_d_foy
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (19)
As of 2014-08-22 19:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (163 votes), past polls