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 「 モジュール 」cpan 利用前の準備 その 2 : local::lib の手動インストール (0x92)

Perl 「 モジュール 」cpan 利用前の準備 その 2 : local::lib の手動インストール (0x92)

目次 - Perl Index



Theme



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

Perl コマンド cpan を使うための準備。root ( システムディレクトリへの書き込み ) 権限を持たないユーザのために、モジュールのインストール先を変更する。

そのために、まず、モジュール「 local::lib 」を手動でインストールする。




モジュール local::lib



CPAN で配布される Perl モジュールは、ユーザ権限で利用できる領域 ( ディレクトリ ) を指定して手動でインストールすることが出来ます。

また、手動でインストールしたモジュールは Perl プログラム内で明示的に指定して利用することも出来ます。

モジュール「 local::lib 」は、これらの手動操作を一手に引き受ける便利なモジュールです。

しかしながら、少なくとも僕が利用している Perl 5.8 には標準で付属していませんので、この場合はまず、local::lib を手動でインストール必要があります。


local::lib の構成ファイルを入手する



local::lib を手動でインストールするには、その構成ファイルを CPAN から入手する必要があります。

local::lib の配布は CPAN の中の以下の URL で行われています。現在 ( 2014/04/04 ) の最新版は Version 2.000011 です。

http://search.cpan.org/~ether/local-lib-2.000011/

このページの "This Releace" に [ Download ] のリンクがあるので、ここからファイルをダウンロードします。

僕は、手元 ( ローカル ) の Windows マシンから SSH 接続を通してリモートホストの FreeBSD を操作しています。

この場合は、Windows 上の Web ブラウザで構成ファイルをいったんダウンロードしてから、FTP 接続を通してリモートホスト ( FreeBSD ) にアップロードする、という手順を取ることが出来ます。

Web サイト作成等では、大抵 FTP を通じたファイルのアップロードを最初に覚えるので、そのまま FTP を使い続ける場合が多いように思います。

しかしながら、もし、SSH 接続が可能な環境を利用しているなら、この様な作業は SSH 上ですべてを済ましてしまった方が効率的です。とてつもなく効率的です。それでいて格好良いです。

SSH で接続したリモートのシェル上から Web 上のファイルを取得する方法はいくつかありますが、今回は中でも代表的なコマンド「 wget 」を使い HTTP 経由でファイルを取得します。

local::lib の [ Download ] リンクの URL は次のものです。

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

これを wget の引数として実行します。

wget には様々なオプションがあり、ファイル名や保存先ディレクトリの指定等も可能ですが、ここでは深入りしません。

wget を実行する際は、予めファイルを保存したいディレクトリに移動しておいてください。


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


上記を実行すると、カレントディレクトリに「 local-lib-2.000011.tar.gz 」というファイルが作成されているはずです。


.tar.gz



このファイル「 localib-2.000011.tar.gz 」の拡張子は「 .gz 」と「 .tar 」から成っています。

「 .gz 」は、「 GNU ZIP 」という圧縮形式の「 gzip 」というコマンドで圧縮されたファイルを意味します。

「 .tar 」は、「 Tape ARchive format 」の略で、ファイルアーカイブ ( 複数のファイルをひとつにまとめる ) に使われるフォーマットの形式を意味します。

「 .tar 」形式でファイルをまとめる際はコマンド「 tar 」を使います。

「 gzip 」は、複数のファイルをまとめる ( アーカイバ ) 機能を持たないので、複数のファイルを一度に圧縮したい場合は「 tar 」との組み合わせで利用します。

「 tar 」でアーカイブ化して「 gzip 」で圧縮するため、拡張子は「 .tar.gz 」となる訳です。


構成ファイルを展開する



「 .tar.gz 」の圧縮アーカイブファイルはコマンド「 tar 」で、伸張・展開することが出来ます。


$ tar xzvf localib-2.000011.tar.gz


上記コマンドを実行すると、同じディレクトリ内に拡張子が除かれたディレクトリ「 localib-2.000011 」が作成されているはずです。

「 xzvf 」は、コマンド tar のオプションです。詳細はここでは触れませんが、おそらく「 f 」はいらないかもしれません。

また、「 x 」の代わりに「 c 」を使えば、反対に .tar.gz のファイルを作成 ( create ) することが出来ます。


local::lib のインストール



展開されたディレクトリ「 localib-2.000011 」の中に移動すると、「 Makefile.PL 」というファイルが存在します。

これは、「 Perl 「 モジュール 」手動インストール (0x90) 」で確認したビルドシステム ExtUtils::MakeMaker を利用していることを意味するため、該当のディレクトリで次のコマンドを実行します。


$ perl Makefile.PL --bootstrap


上記コマンドを実行するとなにやらズラズラ表示されますが、処理が完了するまで心を落ち着けて待ちます。

処理が完了したら何かしらメッセージが表示されます。仮に「 Error 」を含むメッセージが出ていたら、慌てずゆっくりメッセージの内容を確認しましょう。きっと解決策が見つかります。

問題なく終わった ( 様に見えた ) ら、そのまま次のコマンドを実行します。


$ make test && make install


すると次の様な処理が表示されます。


cp lib/POD2/PT_BR/local/lib.pod blib/lib/POD2/PT_BR/local/lib.pod
cp lib/lib/core/only.pm blib/lib/lib/core/only.pm
cp lib/local/lib.pm blib/lib/local/lib.pm
cp lib/POD2/DE/local/lib.pod blib/lib/POD2/DE/local/lib.pod
PERL_DL_NONLAZY=1 /usr/bin/perl -I/home/your/homedir/perl5/lib/perl5 "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/bad_variables.t ...... ok
t/carp-mismatch.t ...... ok
t/classmethod.t ........ ok
t/coderefs_in_inc.t .... ok
t/de-dup.t ............. ok
t/lib-core-only.t ...... ok
t/pipeline.t ........... ok
t/shell.t .............. ok
t/stackable.t .......... ok
t/subroutine-in-inc.t .. ok
t/taint-mode.t ......... ok
All tests successful.
Files=11, Tests=72, 1 wallclock secs ( 0.05 usr 0.04 sys + 0.72 cusr 0.23 csys = 1.04 CPU)
Result: PASS
Manifying blib/man3/POD2::DE::local::lib.3
Manifying blib/man3/POD2::PT_BR::local::lib.3
Manifying blib/man3/lib::core::only.3
Manifying blib/man3/local::lib.3
Installing /home/your/homedir/perl5/lib/perl5/local/lib.pm
Installing /home/your/homedir/perl5/lib/perl5/lib/perl5/POD2/PT_BR/local/lib.pod
Installing /home/your/homedir/perl5/lib/perl5/lib/perl5/POD2/DE/local/lib.pod
Installing /home/your/homedir/perl5/lib/perl5/lib/perl5/lib/core/only.pm
Installing /home/your/homedir/perl5/man/man3/POD2::DE::local::lib.3
Installing /home/your/homedir/perl5/man/man3/POD2::PT_BR::local::lib.3
Installing /home/your/homedir/perl5/man/man3/lib::core::only.3
Installing /home/your/homedir/perl5/man/man3/local::lib.3
Appending installation info to /home/your/homedir/perl5/lib/perl5/amd64-freebsd/perllocal.pod


これは、ホームディレクトリ直下に perl5/ というディレクトリを作り、その中にインストールが完了したということを意味します。

「 cd ~ 」を実行してホームディレクトリに戻ってください。ディレクトリ perl5/ の存在が確認出来るはずです。


0x92 -> 0x93 へ



今回確認した手順は、Perl というより Unix 系システムの基本的な作法です。

シェルを中心とした Unix 系システムの操作・設定は、正直僕もまだまだ分からない点が多くありますが、それらの技術・知識はインターネットやプログラミングに深く関わっているものです。

学習コストはやはりそれなりに必要ですが、プログラミングと並行して学んでおけば、要所でおおいに役立ちます。

次回は、インストールしたモジュール local::lib を利用した設定方法を確認します。

参考情報は書籍「 初めての 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 ▲