How do I tell CPAN to install all dependencies?
Here is the one-liner making these changes permanent including automatic first-time CPAN configuration:
perl -MCPAN -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit'
Or combine it with local::lib
module for non-privileged users:
perl -MCPAN -Mlocal::lib=~/perl5 -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit'
Run it before using the CPAN shell or whatever.
The latest and greatest answer to this question is to use cpanm
instead (also referred to as App::cpanminus or cpanminus)!
DESCRIPTION
cpanminus is a script to get, unpack, build and install modules from CPAN and does nothing else.
It's dependency free (can bootstrap itself), requires zero configuration, and stands alone. When running, it requires only 10MB of RAM.
To bootstrap install it:
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
or if you are using perlbrew
simply
perlbrew install-cpanm
or from cpan itself:
cpan install App::cpanminus
From then on install modules by executing (as root if necessary)
cpanm Foo::Bar
Try setting PERL_MM_USE_DEFAULT like so:
PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install My::Module'
It should make CPAN answer the default to all prompts.