Table of Contents
事前準備
- perl ベースバージョン違い等で CPAN からインストールできないモジュールは dnf でインストールする。
# dnf install -y perl perl-devel perl-open perl-Specio perl-Path-Tiny expat-devel
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 LWP::Protocol::https Perl::Tidy String::Util Text::CSV_XS Text::xSV::Slurp XML::Simple XML::XPath enum::hash Attribute::Constant Number::Format PadWalker Term::Encoding Path::Class =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
インストール
- Ubuntu
$ sudo apt install cpanminus cpanoutdated
- CentOS
# dnf install perl-App-cpanminus # cpanm App::cpanoutdated
- CPAN
# perl -MCPAN -e "CPAN::Shell->install('App::cpanminus')" # cpanm App::cpanoutdated
cpanm 自身のアップグレード
# cpanm --self-upgrade
一括更新
- root
# cpan-outdated | cpanm
- 一般ユーザ
$ sudo bash -c "cpan-outdated | cpanm"
強制インストール
-
-f/--force
オプションを付けるとエラーを無視して強制インストールする。> cpanm -f Win32::Unicode
- xaicron/p5-win32-unicode / テスト実行時にコンソールのエンコーディング指定が必要。 Update 04_print.t
ppm
コンパイル環境のインストール
> ppm install MinGW
一括更新
> ppm upgrade --install
複数のパッケージをまとめてインストール
- cpanm や ppm は、パッケージを複数指定するとまとめてインストールしてくれる。
個人的によく使うパッケージ
YAML::Syck JSON::XS LWP::UserAgent LWP::Protocol::https
Env Fatal Test::Warnings Test::Output Test::Deep Time::Piece
CGI Template URI::Escape::XS File::Basename FindBin::libs
HTTP::Date Lingua::JA::Numbers Lingua::JA::Regular::Unicode
Log::Dispatch MIME::Base64 Socket Net::IP Net::Wake Getopt::Long
String::Util Text::CSV_XS Text::xSV::Slurp XML::Simple XML::XPath
enum::hash Const::Fast Attribute::Constant Number::Format
Perl::Tidy Term::Encoding Path::Class Scalar::Util PadWalker