昨日 Linux 上で実験してみた PAR を Windows にも入れてみる。 PDLを使っている関係で ActivePerl は 5.6.1。
ppm install で入るパッケージは古いので、最新のものを入れておく。 ちょっと手間。
ワンライナーを pp できるところまで動作確認。
ExtUtils::Makemakerを使ってパッケージ化している開発中のモジュール(スクリプトあり、XS あり)を実行可能形式化してみる。
perl Makefile.PL nmake nmake test cd blib set PERL5LIB=lib;arch (pp の -I オプションが効かなかったので) pp -o foo.exe -a lib -a arch -M ... -c script/foo
Log::Log4perl::Appender::Screen、Jcode::Unicode::NoXS、Unicode::String、GD については依存関係を自動検出できなかったので、それぞれ -M で指定。
できた。動いた。素晴しい。 PDL や GD を使っていたのでちょっと不安だったのだがうまく動いて感激。 これでCD-ROMとか USB メモリに入れておいて一発実行とかできる。
ExtUtils::Installed でリストアップしてチェック。
a | ActivePerl::DocTools |
ActiveState::RelocateTree | |
a | ActiveState::Rx |
* | Archive::Tar |
o | Archive::Zip |
* | Compress::Zlib |
o | Data::Dump |
* | Digest |
* | Digest::HMAC |
* | Digest::MD2 |
* | Digest::MD4 |
* | Digest::MD5 |
* | Digest::SHA1 |
* | File::CounterFile |
* | Font::AFM |
* | HTML-Tree |
* | HTML::Parser |
* | HTML::Tagset |
o | IO::Zlib |
* | MD5 |
* | MIME::Base64 |
* | Net (libnet) |
* | PPM |
PPM-Agent-Perl | |
PPM::Shell | |
* | Perl |
* | SOAP::Lite |
* | Storable |
o | Test::Simple |
o | Text::Autoformat |
* | Tk |
* | URI |
o | Unicode::String |
* | Win32 (libwin32) |
a | Win32::AuthenticateUser |
* | XML::Parser |
* | XML::Simple |
* | libwww-perl |
'*' は Copyright.html で オリジナルがオープンソースのものとして列挙されているもの。 'o' は列挙されていないが、オリジナルが Perl と同じライセンスか The Artistic License のもの。 'a' は ActiveState の Copyright があるもの (ActiveState Community License)。 それ以外は明記がないもの。
PAR でパッケージ化するには、Perl と同じライセンスの(あるいは再配布の問題のないもの)もののみストールしてある状態にしておき、PAR 化した中身に
が含まれていないかをチェック。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。