依存モジュールをまとめてインストールするtips
前回依存モジュールをextlibってディレクトリに詰め込もうとしてXS依存したモジュールがあって試みは失敗したけど、最近買ったPerl Hacksに依存モジュールを素早くインストールするtipsがあったなと思って見てみた。
あと誤解を招かないように言うとcpanからのインストールを自動化する技なのでローカルにモジュールを置いておける訳ではない。
結局XSに依存してるモジュールのことも考えるとそれが一番いいのかも。
参考になった章は「個人バンドルを作ろう(Hack #31)」。
まず本には載ってないけどファイル構成はこんな感じ。
script.pl lib/Module.pm lib/Bundle/Module.pm
script.plは今回出てこないけど、このスクリプトファイルでModuleをuseしていて、
このModuleというモジュール(ややこしい)は追加モジュールが必要だとする。
なのでそのモジュールのインストールを自動化するために、lib/Bundle/Module.pmというモジュールを書く。
lib/Bundle/Module.pm
package Bundle::Module; our $VERSION = "0.0"; 1; __END__ =head1 NAME Bundle::Module - Prereq Modules of Module =head1 SYNOPSIS perl -MCPAN -e 'install Bundle::Module' or cpan -i Bundle::Module =head1 CONTENTS # Module.pmが依存しているモジュール Acme::Oppai Sex =head1 AUTHOR # ぶっちゃけCONTENTS以外は要らないと思う tyru <tyru.exe@gmail.com>
そうしたら、libにcdしてこのBundle::Moduleというモジュールをインストールする。
(普通インストールしようとしたらCPAN上のモジュールを検索するけどBundle::というモジュールは例外みたい?)
$ cd lib $ perl -MCPAN -e 'install Bundle::Module' # cpan -i Bundle::ModuleでもOK
これで依存モジュールであるAcme::OppaiやSexが無事インストールされる。
あと、この次のHackのモジュールのインストールを管理しよう(Hack #32)」では、これを活用して現在インストールしているモジュール全てを別マシンにインストールする技なんかも載ってある。
その他後半の章ではB系モジュールの紹介なんかもあって、かなり面白い。(買うのが遅すぎた・・・)
それ以外にも有用なモジュールや色んな発見が必ずあると思うので、買っておいて損はない一冊だと思う。
追記
あれ・・・PERL5LIBをうっかり設定し忘れたらできなかった・・・なんでだろ?
local::libの設定してないとできないのかな?(超適当。原因は未だに不明