簡単なCPANモジュールのインストール方法
Perl には、Perlコードをユニット単位で再利用可能にするためのモジュールという概念があります。例えば、メールを送信したりHTMLを出力するなどといった機能は何度も使いますから、そのたびに書き直したりコピーするのはめんどうですし、時間の無駄です。Perlのモジュールを利用すれば、プログラムからモジュールを呼び出すだけでメール送信機能やHTML出力機能など、そのほか様々な機能が利用できるようになっています。
モジュールは、通常は拡張子が .pm となっていて、それをコードの中から呼び出すことによりそのモジュールの機能を利用できるようになっています。モジュールを使えば、面倒な作業をショートカットでき、メール送信なんかのちょっと難しい処理も簡単にできるようになります。
自分でモジュールを製作しなくても、CPANサイトには世界中のプログラマが作ったモジュールが集められていて、無料でダウンロードすることができます。
CPANモジュールがインストールされていれば、以下のようにコマンド入力することによって、対話的に利用することができます。
% perl -MCPAN -e shell
このモジュールをはじめて使う際に、構成に関する質問が出力されますが、ほとんどの質問についてはデフォルトの答えで問題ないので、[Enter] キーで先に進めてしまいましょう。
※途中で、選択しなければ進めない箇所が出てきます。ダウンロードするサイトはどれにするかを聞いているだけですので、次のように答えていくとよいでしょう(太字になっているのが入力した番号です)。
First, pick a nearby continent and country (you can pick several of
each, separated by spaces, or none if you just want to keep your
existing selections). Then, you will be presented with a list of URLs
of CPAN mirrors in the countries you selected, along with previously
selected URLs. Select some of those URLs, or just keep the old list.
Finally, you will be prompted for any extra URLs -- file:, ftp:, or
http: -- that host a CPAN mirror.
(1) Africa
(2) Asia
(3) Central America
(4) Europe
(5) North America
(6) Oceania
(7) South America
Select your continent (or several nearby continents) [] 2
(1) China
(2) India
(3) Indonesia
(4) Israel
(5) Japan
(6) Korea
(7) Malaysia
(8) Philippines
(9) Russian Federation
(10) Saudi Arabia
(11) Singapore
(12) South Korea
(13) Taiwan
(14) Thailand
Select your country (or several nearby countries) [] 5
(1) ftp://ftp.ayamura.org/pub/CPAN/
(2) ftp://ftp.cpan.jp/CPAN/
(3) ftp://ftp.dti.ad.jp/pub/lang/CPAN/
(4) ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
(5) ftp://ftp.kddlabs.co.jp/CPAN/
(6) ftp://ftp.meisei-u.ac.jp/pub/CPAN/
(7) ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
(8) ftp://ftp.u-aizu.ac.jp/pub/CPAN
(9) ftp://mirror.nucba.ac.jp/mirror/Perl/
Select as many URLs as you like,
put them on one line, separated by blanks [] 2
CPANモジュールの対話モードにはいったら、使えるモジュールの一覧を出力させたり、ダウンロードや、インストールを行うことができます。詳しい操作方法はコマンドラインでクエスチョン( ? )を入力することで表示することができます。
cpan> ? Display Information command argument description
a,b,d,m WORD or /REGEXP/ about authors, bundles, distributions, modules i WORD or /REGEXP/ about anything of above
r NONE reinstall recommendations
ls AUTHOR about files in the author's directory Download, Test, Make, Install... get download make make (implies get) test MODULES, make test (implies make) install DISTS, BUNDLES make install (implies test) clean make clean look open subshell in these dists' directories readme display these dists' README files Other h,? display this menu ! perl-code eval a perl command o conf [opt] set and query options q quit the cpan shell reload cpan load CPAN.pm again reload index load newer indices autobundle Snapshot force cmd unconditionally do cmd
モジュールのインストールはとても簡単です。たとえば、XML::RSSをインストールするには、下記のように入力するだけです。
cpan> install XML::RSS
モジュールの分類
ftp.cpan.jp
/CPAN
- authors
- モジュール製作者ごとの分類
- doc
- Perl に関するドキュメント類。
- modules
- バンドルされていないモジュール
- ports
- 標準の配布キットでサポートされていないOSに対するPerlのポートのソースコード、バイナリ
- scripts
- 全世界から集まった様々なスクリプトのコレクション
- src
- 標準 Perl 配布キットのソース。最新版は常に src/latest.tar.gz
という名前のファイル。
/CPAN/modules
モジュールは CPANのmodulesディレクトリで管理され、無料で利用することができます。CPANのmodulesディレクトリは目的別に3つのサブディレクトリに分類されています。
- by-authors
- 製作者の名前で分類
- by-category
- モジュールの内容で分類
- by-module
- モジュール名で分類
- dbperl
- データベースに関連する DBI やスクリプト
各モジュールの説明や一覧は、modules ディレクトリ直下の 00modlist.long.html
ファイルをご覧ください。
モジュールのインストールチェック
モジュールをダウンロードする前に、そのモジュールがすでにインストールされているかどうかシステムをチェックしておきましょう。以下のコマンドを実行すると、@INC配列中のライブラリを検索し、見つかったらモジュールの名前をすべて表示してくれます。
find `perl -e 'print "@INC"'` -name '*.pm' -print
上記コマンドオプションだと、全モジュールが表示されるので、目当てのモジュールを見つけるのが大変かもしれません。たとえば、MySQL用のモジュール Msql.pm を見つけたい場合は、アスタリスク( * )の代わりに直接名前を指定するとよいでしょう。
find `perl -e 'print "@INC"'` -name 'Msql.pm' -print
ファイルダウンロードからのモジュールインストール
Perlにバンドルされていないモジュールをインストールする場合には、必要なファイルをダウンロードしてから、下記のような手順で行います。
ダウンロードしたファイルを解凍後、展開されたディレクトリに移動
% tar xvfz {ファイル名}.tar.gz % cd {ファイル名}
Makefile の作成
% perl Makefile.PL
モジュールのビルド
% make
動作確認
% make test
インストール
% make install
※makeはコンパイル作業を自動化するためのコマンドで、カレントディレクトリにある「Makefile」を参照してコンパイルします。
※インストール前に、インストールする際のユーザ権限で、Perl 5ライブラリディレクトリにインストールすることができるか確認しましょう。ルート権限が必要になることがあります。
インストールディレクトリを指定する
モジュールをデフォルトの場所ではなく、任意の場所にインストールするのであれば、「perl Makefile.PL」を実行する前にPerlに PREFIX 引数を指定します。PREFIX
引数には、ベースのディレクトリに指定したいディレクトリパスを指示します。
% perl Makefile.PL PREFIX=/home/perl/Modules % make....
なお、PREFIXを使ってインストールを行った場合は、プログラムを書く際にその場所を指定する必要があります。
#! /usr/local/bin/perl use lib /home/perl/Modules; use NewModule; ....
インストールログの確認
Perlは、全てのモジュールのインストールの際にログを記録しています。そのリストは次のコマンドで確認できます。
perldoc perllocal
次のように出力されます。
PERLLOCAL(1) User Contributed Perl Documentation PERLLOCAL(1) Sun Jul 11 23:52:41 2021: "Module" user::PENModule o "installed into: /usr/lib/perl5/site_perl/5.6.1" o "LINKTYPE: dynamic" o "VERSION: undef" o "EXE_FILES: " Sun Jul 11 23:59:34 2021: "Module" libwww-perl o "installed into: /usr/lib/perl5/site_perl/5.6.1" .....
関連リンク
CPAN
Perl の便利なモジュール
- 日本語の扱える jperl
jperlをコンパイルするにはPerl配布キットが必要です。 - jcode.pl 2.13
文字コード変換用ライブラリです。 - jcode.pl の私的な解説書
- Jcode.pm
Perl5専用の文字コード変換用ライブラリです。jcode.plの機能に加えて、MIME header、Unicode をサポートしています。