blog20100901

2013/08/20 - プログラミング言語 Perl にまつわる etc. - Perl monger
参考 : perldoc, perldoc.jp, search.cpan.org, perldoc.perl.org ...
「 初めての Perl 第 6 版 」(オライリー・ジャパン発行 ISBN978-4-87311-567-2) 」
「 続・初めての Perl 改訂版 」(オライリー・ジャパン発行 ISBN4-87311-305-9) 」
「 Effective Perl 第 2 版 」(翔泳社発行 ISBN978-4-7981-3981-4) 」 ... etc,.

Perl Perl_1

Perl 「 モジュール 」local::lib 利用方法まとめ (0x9a)

Perl 「 モジュール 」local::lib 利用方法まとめ (0x9a)
目次 - Perl Index


Perl について、復習を兼ねて断片的な情報を掲載して行く連載その 0x9a 回。

ホームディレクトリ配下に cpanm を利用したモジュールのインストールを試す前に、モジュール「 local::lib 」の設定方法を今一度確認する。




local::lib 構成ファイルのダウンロード



Perl 「 モジュール 」cpan 利用前の準備 その 2 : local::lib の手動インストール (0x92) 」で確認した local::lib のインストール方法を端的に再確認します。

loca::lib の構成ファイルは、モジュール CPAN.pm ( またはコマンド cpan )を利用する前に、直接 CPAN ( The Comprehensive Perl Archive Network ) からダウンロードしました。

構成ファイルのダウンロードは、ダウンロードファイルを設置するディレクトリに移動 ( cd ) してから次のコマンドで対応します。


$ wget http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/local-lib-2.000011.tar.gz


コマンド wget は、コマンド curl で代用可能です。両者の違いは次の Web ページに簡潔にまとめられています。

wgetとcurlの根本的な違い - ctrlshift's diary

local::lib のインストール



取得した構成ファイルの .tar.gz ファイルを展開します。


$ tar xzvf localib-2.000011.tar.gz


展開したディレクトリの中に移動して、「 Makefile.PL 」の存在を確認したら、そのまま次のコマンドを実行しましょう。

これは、local::lib をインストールする際のブートストラッピングテクニックです。あなたが root またはそれに類する管理者権限を持たない場合は必須の設定です。


$ perl Makefile.PL --bootstrap


これで、local::lib は標準で ~/perl5 を作成しようとします。つまり、ホームディレクトリ配下に perl5/ を作成する訳です。

ただし、次回以降は次の様にオプション「 --no-manpages 」を追加します。


perl Makefile.PL --bootstrap --no-manpages


僕の様にレンタルサーバを利用している場合、ディスクスペースは出来るだけ消費したくないので、モジュールのマニュアルファイルを作成しない様にする訳です。

続いて次のコマンドを実行し、インストールが完了します。


$ make test && make install


これで、あなたのホームディレクトリ配下に perl5/ と .cpan/ のディレクトリが作成されているはず。


local::lib で環境変数を設定する



インストールが完了したら、local::lib を使ってシェルの環境変数を設定します。

僕は tcsh を利用しているので、次の様にコマンド echo を実行して、シェルの設定ファイル .cshrc に必要な設定を書き込みます。


$ echo 'eval `perl -I$HOME/perl5/lib/perl5/ -Mlocal::lib`' >> ~/.cshrc


上記を実行後は、次のコマンドでシェルに設定を反映します ( csh 系 )。


$ source .cshrc
$ rehash


これにより、シェルの環境変数にそれぞれ以下の変数と値が設定されます。


PERL5LIB=/home/your/homedirectory/perl5/lib/perl5
PERL_LOCAL_LIB_ROOT=/home/your/homedirectory/perl5
PERL_MB_OPT=--install_base "/home/your/homedirectory/perl5"
PERL_MM_OPT=INSTALL_BASE=/home/your/homedirectory/perl5


「 PERL5LIB 」は、Perl が ( モジュール関連の ? ) ライブラリファイルを探す場合に探しに行くシステムパスです。これは標準のライブラリディレクトリ ( 通常システムディレクトリ ) より優先されます。

「 PERL_LOCAL_LIB_ROOT 」は、local::lib を使う場合に必要な環境変数の様です。

「 PERL_MB_OPT 」は、Module::Build を利用してインストールするモジュールのために Build.PL を実行する際にインストールオプションに渡すシステムパスです。

「 PERL_MM_OPT 」は、ExtUtils::MakeMaker を利用してインストールするモジュールのために Makefile.PL を実行する際にインストールオプションに渡すシステムパスです。

Module::Build と ExtUtils::MakeMaker は、「 Perl 「 モジュール 」手動インストール (0x90) 」で確認しました。


@INC を確認



上記コマンドを実行したら、Perl がモジュールを検索するためのシステムパスを格納する特殊な配列「 @INC 」を、シェル上からワンライナーで確認します。


$ perl -e 'for ( @INC ) {print "$_\n" ; }'
/home/your/homedirectory/perl5/lib/perl5/amd64-freebsd
/home/your/homedirectory/perl5/lib/perl5
/usr/local/lib/perl5/5.8.9/BSDPAN
/usr/local/lib/perl5/site_perl/5.8.9/mach
/usr/local/lib/perl5/site_perl/5.8.9
/usr/local/lib/perl5/5.8.9/mach
/usr/local/lib/perl5/5.8.9


ん、行けそうです。

Bundle::CPAN と cpan upgrade



Local::lib で CPAN.pm を ( ローカルで ) 利用するための設定が完了したら、CPAN.pm の定番ツールセット「 Bundel::CPAN 」をインストールします。必須ではありませんが、あると便利セットなのだそうです。


$ cpan
cpan> install Bundle::CPAN


上記が完了したら、まずリロードをして、次に CPAN.pm 自体をアップグレードします。


cpan> reload cpan


アップグレードは相当の時間がかかります。


cpan> upgrade


これを実行する場合は、事前に十分な時間を確保しておくべきです。

cpan シェルの対話モードを設定する



cpan シェル上で次のコマンドを実行すると、インストール時に依存関係にあるモジュールをすべて自動でインストールする様になります。


cpan> o conf prerequisites_policy follow
cpan> o conf commit


これによって対話モード ( yes/no ? ) の回数がとても少なくなりますが、すべてを回答してくれる訳ではないので、進捗具合はちょくちょく確認しましょう。

これを含む cpan シェルの各種設定は、~/.cpan/CPAN/MyConfig.pm で確認出来ます。

プログラム内でモジュールを利用する



Perl 「 モジュール 」CPAN の ? アンインストール/再インストール (0x97) 」で確認したコマンドを応用してインストールされていないモジュールを探しましょう。

例えば、モジュール Path::Class を確認したいなら、次の様にします。


$ find `perl -e 'for (@INC) {print "$_\n" if $_ =~ /homedirectory/}'` -name '*.pm' -print | grep -i path/class


モジュール名にある「 :: 」はシステムパスのスラッシュ「 / 」に相当するので、コマンド grep を使って「 path/class 」を抽出する算段です。grep のオプション「 -i 」は、大小文字を無視する設定です。

もし、該当するモジュールがない場合は、cpan シェルからインストールしてしまいましょう。


$ cpan
cpan> install Path::Class


インストールが完了したら、Perl プログラム内で use Path::Class; とします。

これで、( ローカルにインストールした ) 新しいモジュールを使える様になっているはずです。

0x9a -> 0x9b へ



祝「 0x100 」回目 ! と思ったら「 0x9a 」回目でした。

というか、「 0x100 」回目がすごく遠いです。なんで 16 進なんかにしたんでしょうか。それは、初心者感が出てていいなと思ったからです。

参考情報は書籍「 初めての Perl 第 6 版 」を中心に perldoc, Wikipedia および各 Web サイト。それと詳しい先輩。

目次 - Perl Index
















同じカテゴリー(Perl)の記事
 Perl mp2 翻訳 Web コンテンツ圧縮の FAQ (d228) (2023-10-11 23:49)
 Perl mp2 翻訳 既知のブラウザのバグの回避策をいくつか (d227) (2023-05-26 15:41)
 Perl mp2 翻訳 Perl と Apache でのキュートなトリック (d226) (2023-05-19 17:05)
 Perl mp2 翻訳 テンプレートシステムの選択 (d225) (2022-08-15 22:23)
 Perl mp2 翻訳 大規模 E コマースサイトの構築 (d224) (2022-06-15 20:43)
 Perl mp2 翻訳 チュートリアル (d223) (2022-06-15 20:42)
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

Llama
リャマ
TI-DA
てぃーだブログ
プロフィール
セラ (perlackline)
セラ (perlackline)
QRコード
QRCODE
オーナーへメッセージ

PAGE TOP ▲