Humanity

Edit the world by your favorite way

依存モジュールをまとめてインストールする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の設定してないとできないのかな?(超適当。原因は未だに不明