8部 インストールと設定

モジュールのインストール(UNIX版)

簡単な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
PAGE TOP


モジュールの分類

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
ファイルをご覧ください。

PAGE TOP


モジュールのインストールチェック

モジュールをダウンロードする前に、そのモジュールがすでにインストールされているかどうかシステムをチェックしておきましょう。以下のコマンドを実行すると、@INC配列中のライブラリを検索し、見つかったらモジュールの名前をすべて表示してくれます。

find `perl -e 'print "@INC"'` -name
'*.pm' -print

上記コマンドオプションだと、全モジュールが表示されるので、目当てのモジュールを見つけるのが大変かもしれません。たとえば、MySQL用のモジュール Msql.pm を見つけたい場合は、アスタリスク( * )の代わりに直接名前を指定するとよいでしょう。

find `perl -e 'print "@INC"'` -name 'Msql.pm' -print
PAGE TOP


ファイルダウンロードからのモジュールインストール

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;
....
PAGE TOP


インストールログの確認

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"
.....
PAGE TOP


関連リンク

CPAN

Perl の便利なモジュール

関連記事