CPAN

シェルを起動して対話的にインストール

# perl -MCPAN -e shell

bash 等からインストール

# perl -MCPAN -e "CPAN::Shell->install('Bundle::CPAN')"

更新可能なパッケージ一覧の表示

# perl -MCPAN -e "CPAN::Shell->r"

一括更新

# perl -MCPAN -e "CPAN::Shell->install(CPAN::Shell->r)"
  • 途中で Yes/No の確認を求められる。

バージョンを指定してインストール

# perl -MCPAN -e "CPAN::Shell->install('LEMBARK/FindBin-libs-1.55.tar.gz')"
  • CPAN:FindBin-libs は Perl v5.10.0 以上が必要で v5.8.8 にはインストールできない。

シェルでヒストリが効かない (Bundle::CPANをインストール)

> install Bundle::CPAN

強制的に再インストール

  • インストール済みであっても強制に再インストールするには「force」を付ける。
    > force install Scalar::Util
  • 「IO::Socket::SSL」が下記エラーにてインストールできなかったら、依存する「Scalar::Util」を強制再インストールする。
    Net::SSL from Crypt-SSLeay can't verify hostnames; either install IO::Socket::SSL or turn off verification by setting the PERL_LWP_SSL_VERIFY_HOSTNAME environment variable to 0 at /usr/lib/perl5/site_perl/5.8.8/LWP/Protocol/http.pm line 51.
    You need the XS Version of Scalar::Util for dualvar() support at Makefile.PL line 56.

複数のパッケージをまとめてインストール

  • インストールしたいパッケージ名を書いた適当な *.pm ファイルを作成し、それをインストールする。
    # cd ~
    # perl -MCPAN -e "CPAN::Shell->install('Bundle::MyPackages')"
  • /root/Bundle/MyPackages.pm
    package Bundle::MyPackages;
    
    use strict;
    use utf8;
    use vars qw( $VERSION );
    $VERSION = "0.01";
    1;
    
    =head1 CONTENTS
    
    Env
    Fatal
    Test::Warnings
    Test::Output
    Test::Deep
    Time::Piece
    CGI
    URI::Escape::XS
    File::Basename
    FindBin::libs
    Getopt::Long
    HTTP::Date
    JSON::XS
    Lingua::JA::Numbers
    Lingua::JA::Regular::Unicode
    Log::Dispatch
    MIME::Base64
    Socket
    Net::IP
    Net::Wake
    Crypt::SSLeay
    Perl::Tidy
    String::Util
    Text::CSV_XS
    Text::xSV::Slurp
    XML::Simple
    XML::XPath
    enum::hash
    Attribute::Constant
    Number::Format
    PadWalker
    Term::Encoding
    
    =cut
  • 複数のCPANモジュールを一括インストール - Kawa.net 旧ゆうすけブログ (Yahoo!版)

インストール済みのモジュールのバージョン確認

  • Linux
    # perl -M(モジュール名) -e 'print "$(モジュール名)::VERSION\n";'
    # perl -MJSON::Syck -e 'print "$JSON::Syck::VERSION\n";'
  • Win
    > perl -M(モジュール名) -e "print $(モジュール名)::VERSION;"
    > perl -MJSON::Syck -e "print $JSON::Syck::VERSION;"

cpanminus

インストール

  • yum
    # yum install perl-App-cpanminus
  • CPAN
    # perl -MCPAN -e "CPAN::Shell->install('App::cpanminus')"
    # cpanm App::cpanoutdated

cpanm 自身のアップグレード

# cpanm --self-upgrade

一括更新

# cpan-outdated | cpanm

ppm

一括更新

> ppm upgrade --install

複数のパッケージをまとめてインストール

  • パッケージを複数指定する。
    > ppm install Env Fatal Test::Warnings Test::Output Test::Deep Time::Piece
    > ppm install CGI URI::Escape::XS File::Basename FindBin::libs Getopt::Long
    > ppm install HTTP::Date JSON::XS Lingua::JA::Numbers Lingua::JA::Regular::Unicode
    > ppm install Log::Dispatch MIME::Base64 Socket Net::IP Net::Wake Crypt::SSLeay Perl::Tidy
    > ppm install String::Util Text::CSV_XS Text::xSV::Slurp XML::Simple XML::XPath
    > ppm install enum::hash Attribute::Constant Number::Format PadWalker Term::Encoding

リンク