CPANモジュールのインストール時に自動でデフォルト選択をする方法

何通りかあります。

yes コマンド

yes '' | cpan -i Some::Module

yes に空文字列を引数に与えないと、'y' をパイプに送ってしまい、デフォルト値選択ではなく、必ず y を選択してしまうので注意!

環境変数 PERL_AUTOINSTALL

PERL_AUTOINSTALL='--defaultdeps' cpan -i Some::Module

or

export PERL_AUTOINSTALL='--defaultdeps'
cpan -i Some::Module

詳しくは、Module::AutoInstall の ENVIRONMENT の項を参照のこと。

cpan の prerequisites_policy オプション

cpan> o conf prerequisites_policy follow
cpan> o conf commit
cpan> quit

で設定変更をして、

cpan -i Some::Module
prerequisites_policy
モジュールの前提条件を満たしていないときにどうするか。('follow' デフォルト選択, 'ask' 尋ねる, 'ignore' 無視する)

まとめ

prerequisites_policy を設定すれば、全てのインストール作業に適用されて便利ですが、デフォルト値じゃないものを選択したい時もあるので、普段は yes コマンドを使って、デフォルト値以外も指定したいときは、yes コマンドを使わずに普通にインストールしています。

CPAN モジュールをバージョン指定でインストールする方法

ブラウザで search.cpan.org から tar ball を持ってこなくても、cpan シェルでバージョンを指定してインストールできます。

cpan[1]> m Test::Declare
Module id = Test::Declare
    CPAN_USERID  NEKOKAK (Atsushi Kobayashi <nekokak cpan org>)
    CPAN_VERSION 0.04
    CPAN_FILE    N/NE/NEKOKAK/Test-Declare-0.04.tar.gz
    UPLOAD_DATE  2009-04-09
    INST_FILE    (not installed)

cpan[2]> install NEKOKAK/Test-Declare-0.03.tar.gz

m コマンドでモジュールの場所を調べてバージョン番号の部分を変えて指定すれば、通常の最新版と同様に自動インストールできます。