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 「 モジュール 」インストール/アップグレード (0x96)

Perl 「 モジュール 」インストール/アップグレード (0x96)

目次 - Perl Index



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

コマンド cpan を使うための準備が整ったので、実際にモジュールをインストールしてアップグレードしてみます。




Bundle::CPAN



コマンド cpan を利用するにあたって最初にインストールするモジュールは「 Bundle::CPAN 」がお約束の様です。

「 Bundle::CPAN 」は、標準で付属する CPAN.pm の振る舞いを最適化してくれるツールセットです。

これは CPAN.pm の利用に際して必須のバンドルではない様ですが、小技を利かせたツールセットらしいので、ディスク容量に余裕があるならば、インストールしておいても損はないでしょう。

インストールは次の様に行いました。


$ cpan
cpan> install Bundle::CPAN


コマンド capn を実行後に表示されるプロンプト「 cpan> 」( 多少表示が異なる場合があります ) は、cpan のためのシェル、つまり cpan シェルにいることを意味します。

ここから、専用に用意された様々なコマンドを利用します。コマンド「 install 」も、用意された専用コマンドのひとつです。

インストール中には、 yes/no の対話を求めてくる場合がありますが、僕は標準に準じてすべて Enter で通します。

インストール完了後は次のコマンドによって cpan をリロードすると良い様です。


cpan> reload cpan


ひとまずこれで、 cpan プロンプトで矢印の上下を使ったコマンドヒストリの確認が出来る様になっていると思います。

「 Bundle::CPAN 」でインストールされるモジュール群および機能は、以下のページ ( 英語 ) にその解説がありました。

Bundle::CPAN - CPAN


cpan upgrade



Bundle::CPAN のインストールが完了したら、次は既存モジュールのアップグレードします。

モジュールのアップグレードにはコマンド「 upgrade 」を使います。

引数にモジュール名を指定することで、個別のモジュールをアップグレード出来ます。

引数に何も与えずに「 upgrade 」を実行すると、インストール済みのモジュールをすべてアップグレードします。


cpan> upgrade


これはとても時間がかかる上、yes/no で迫られる回数も多いので、うっかりしていると処理が止まったままになります。

大抵の対話は、モジュールが必要としているモジュールやモジュールのテスト段階で必要なモジュール ( つまり、依存関係にあるモジュール ) をインストールするか否かという内容です。

それは例えば次の様なものです。

Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes]


「 [yes] 」と表示されているのが標準の選択肢です。時には「 [no] 」と表示されることもあります。

標準に反した回答をタイプすることも可能ですが、今の僕には積極的なカスタマイズは困難なので、すべて標準に準じて Enter で通しています。

最初はひとつひとつ「 yes/no 」をタイプしてから Enter を押下していましたが、標準に準じるならば Enter のみで良いらしいことを知りました。


upgrade 完了



僕の環境で upgrade が完了した際には、次のメッセージと合わせて、モジュールのリストが表示されていました。

Can't test without successful make Running make install
Make had returned bad status, install seems impossible
Could not read metadata file. Falling back to other methods to determine prerequisites
Failed during this command:
:
.
cpan>


「 テストが正常に完了せずインストールが出来なかったモジュール 」という様に読めます。

メッセージを遡って確認すると、Perl 5.18 が必要の様に書いてありました。僕が利用している Perl は 5.8 なので、おそらくこれらの利用は出来ないのでしょう。

ということで、upgrade はこれで完了とします。


対話モードの設定



cpan シェルの設定を変更することで、標準に準じた回答を自動で行う様にすることが出来ます。


cpan> o conf prerequisites_policy follow
cpan> o conf commit


「 follow 」の代わりに「 ask 」とすると対話モード (標準) に「 ignore 」と指定すると依存モジュールをインストールしないとのことです。

「 o conf 」が cpan シェルの設定モードで「 prerequisites_policy 」が設定項目、「 follow 」が値です。
「 commit 」は、指定した設定を恒常的なものにするためのものです。

cpan シェルの設定も追々確認するかもしれません。

以下のページの「 CPANモジュールに関するFAQ 」には基本的な知識が掲載されています。

CPAN - CPANからモジュールをインストールする / Perlモジュール徹底解説 - サンプルコードによるPerl入門

勉強になるのでとても助かるのですが、といっても、それは今だからこその話で、最初は本当に意味不明でした。


インストール履歴の確認



インストールしたモジュールの履歴は「 perllocal 」というファイルで確認出来る様です。

cpan ではない通常のシェルで次のコマンドを実行します。


$ perldoc perllocal


「 perllocal 」には次の様なフォーマットでモジュールのインストール履歴がリストされています。


Thu Apr dd hh:mm:ss yyyy: "Module" YAML
* "installed into:
/home/your/homedirectory/perl5/lib/perl5"

* "LINKTYPE: dynamic"

* "VERSION: 0.73"

* "EXE_FILES: "



0x96 -> 0x97 へ



今回で、「 任意の領域に 」コマンド cpan を利用したモジュールのインストールが出来ることを確認しました。

僕は、ここまで来るまでに結構な遠回りをしましたが、おかげで CPAN を使うためのノリを掴むことが出来ました。

CPAN のノリは、手探りの試行錯誤で覚えたものですが、わけても初期設定を何度もやり直したことがとても身になった様に思います。

ここいらで、僕は手つかずの「 cpanm 」の利用方法を確認したいのですが、ひとまず次回は、「 初期設定のやり直し方 : それはアンインストールなのか ?」を確認したいと思います。

ちなみに、upgrade が完了した .cpan/ の容量は 1GB を超えてました。多いように思いますが、こんなものなのでしょうか。


$ du -sh .cpan/
1.1G .cpan/


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