PAR-0.75 > PAR

名前

PAR - Perl Archive Toolkit

バージョン

This document describes version 0.75 of PAR, released September 21, 2003.

このドキュメントは2003年9月21日にリリースされたPAR 0.75について説明している。

概要

(If you want to make an executable that contains all module, scripts and data files, please consult the bundled pp utility instead.)

(もし全てのモジュール、スクリプト、データファイルを含んだ実行ファイルを作成 したいなら、代わりに、バンドルされているppユーティリティを吟味して欲しい。)

Following examples assume a foo.par file in Zip format; support for compressed tar (*.tgz/*.tbz2) format is under consideration.

次の例は、Zip形式のfoo.parファイルを想定している;圧縮された tar(*.tgz/*.tbz2)形式のサポートは検討中である。

To use Hello.pm from ./foo.par:

./foo.parからHello.pmを使う:

    % perl -MPAR=./foo.par -MHello
    % perl -MPAR=./foo -MHello          # .par 部分はオプション

Same thing, but search foo.par in the @INC;

同じことだが、@INCからfoo.parを探す;

    % perl -MPAR -Ifoo.par -MHello
    % perl -MPAR -Ifoo -MHello          # 同上

Following paths inside the PAR file are searched:

PARファイル中で以下のパスがサーチされる:

    /lib/
    /arch/
    /i386-freebsd/              # これは $Config{archname}
    /5.8.0/                     # これは $Config{version}
    /5.8.0/i386-freebsd/        # 上を両方
    /

PAR files may also (recursively) contain other PAR files. All files under following paths will be considered as PAR files and searched as well:

PARファイルは他のPARファイルを(再帰的に)含むこともできる。 以下のパス下の全ファイルがPARファイルとみなされ、検索される:

    /par/i386-freebsd/          # これは $Config{archname}
    /par/5.8.0/                 # これは $Config{version}
    /par/5.8.0/i386-freebsd/    # 上を両方
    /par/

Run script/test.pl or test.pl from foo.par:

foo.parからscript/test.pltest.plを実行する:

    % perl -MPAR foo.par test.pl        # only when $0 ends in '.par'

However, if the .par archive contains either script/main.pl or main.pl, then it is used instead:

しかし、.parアーカイブがscript/main.plmain.plのどちからを含んでいる なら、そのときは代わりにそれが利用される:

    % perl -MPAR foo.par test.pl        # @ARGとして'test.pl'を伴ってmain.plを実行

Use in a program:

プログラム中で使う:

    use PAR 'foo.par';
    use Hello; # foo.par内で読み込む

    # PAR::read_file()はロードされたPARファイル内のファイルを返す
    my $conf = PAR::read_file('data/MyConfig.yaml');

    # PAR::par_handle()はArchive::Zipのハンドルを返す
    my $zip = PAR::par_handle('foo.par')
    my $src = $zip->memberNamed('lib/Hello.pm')->contents;

You can also use wildcard characters:

ワイルドカードを使うこともできる:

    use PAR '/home/foo/*.par';  # そのディレクトリ内の全PARファイルをロード

説明

This module lets you easily bundle a typical blib/ tree into a zip file, called a Perl Archive, or PAR.

このモジュールを使えば、よくあるblib/ツリーを、簡単にzipファイル (Perl Archive、すなわちPAR)にバンドルすることができる。

It supports loading XS modules by overriding DynaLoader bootstrapping methods; it writes shared object file to a temporary file at the time it is needed.

DynaLoaderのブートストラップメソッドをオーバーライドすることにより、 XSモジュールのロードもサポートしている;これは必要なときに、 共有オブジェクトを一時ファイルに書き出す。

To generate a .par file, all you have to do is compress the modules under arch/ and lib/, e.g.:

.parファイルを生成するには、arch/lib/下でモジュールをコンプレス するだけでよい。例えば:

    % perl Makefile.PL
    % make
    % cd blib
    % zip -r mymodule.par arch/ lib/

Afterward, you can just use mymodule.par anywhere in your @INC, use PAR, and it will Just Work.

その後、@INCのパスが通っている場所でmymodule.parを使い、PAR を使うだけで、正しく動く。

For convenience, you can set the PERL5OPT environment variable to -MPAR to enable PAR processing globally (the overhead is small if not used); setting it to -MPAR=/path/to/mylib.par will load a specific PAR file. Alternatively, consider using the par.pl utility bundled with this module, or using the self-contained parl utility on machines without PAR.pm installed.

便利なことに、-MPARに対して環境変数PERL5OPTをセットすると、 PARがグローバルに処理を行なうことを可能にする(もし使わないなら オーバーヘッドは小さい);-MPAR=/path/to/mylib.parに対して、変数を セットすると、指定のPARファイルをロードする。別の方法として、この モジュールにバンドルされているpar.plユーティリティを使うことや、 PAR.pmがインストールされていないマシン上で自己完結的なユーティリティ parlを使うことなどを考慮するとよい。

Note that self-containing scripts and executables created with par.pl and pp may also be used as .par archives:

par.plppで作成された自己完結なスクリプトや実行ファイルは、 .parアーカイブとして使用されることに注意:

    % pp -o packed.exe source.pl        # packed.exeを生成
    % perl -MPAR=packed.exe other.pl    # これも動作する
    % perl -MPAR -Ipacked.exe other.pl  # 同上

Please see "SYNOPSIS" for most typical use cases.

もっとも典型的な使用例については、"概要"を参照されたし。

注意

In the next few releases, it is expected that the META.yml packed inside the PAR file will control the default behavior of temporary file creation, among other things; pp will also provide options to set those PAR-specific attributes.

あと数回のリリースで、色々あるが特に、PARファイル内にパックされた META.ymlが一時ファイル生成についてデフォルトの振る舞いを制御する 予定だ;ppもこれらPARに特有の属性を設定するオプションを提供するだろう。

Currently, pp-generated PAR files will attach four such PAR-specific attributes in META.yml:

現在のところ、ppによって生成されたPARファイルは、META.ymlにおいて そのようなPAR特有の属性を4つ付け加える:

    par:
      cleartemp: 0      # PAR_CLEARTEMPのデフォルト値
      signature: ''     # シグネチャファイルの key ID
      verbatim: 0       # パックされた必要物のPODファイルは保護されているか?
      version: x.xx     # このPARファイルを生成したPAR.pmのバージョン

Additional attributes, like cipher and decrypt_key, are being discussed on the mailing list. Join us if you have an idea or two!

追加的な属性として、cipherdecrypt_keyのようなものが、 メーリングリストで議論されている。幾らかのアイディアがあるなら、ぜひ参加を!

参考

http://www.autrijus.org/par-tutorial/

PAR::Intro

par.pl, parl, pp

Archive::Zip, "require" in perlfunc

ex::lib::zip, Acme::use::strict::with::pride

謝辞

Nicholas Clark for pointing out the mad source filter hook within the (also mad) coderef @INC hook, as well as (even madder) tricks one can play with PerlIO to avoid source filtering.

Nicholas Clarkは、いかれたソースフィルタhookを(これまたいかれた) コードリファレンス@INChook内で指摘してくれた。ソースフィルタリングを 回避するためにPerlIOをいじくる(さらにいかれた)細工も同様だ。

Ton Hospel for convincing me to ditch the Filter::Simple implementation.

Ton Hospelは、私にFilter::Simpleの実装を捨てさるよう説得しれくれた。

Uri Guttman for suggesting read_file and par_handle interfaces.

Uri Guttmanはread_filepar_handleのインターフェースを示唆してくれた。

Antti Lankila for making me implement the self-contained executable options via par.pl -O.

Antti Lankilaのおかげで、par.pl -Oを通じた自己完結な実行ファイル オプションの実装ができた。

See the AUTHORS file in the distribution for a list of people who have sent helpful patches, ideas or comments.

パッチ、アイディア、コメントで助けてくれた人々のリストが 配布物のAUTHORSファイルにあるので参照してほしい。

作者

Autrijus Tang <autrijus@autrijus.org>

http://par.perl.org/ is the official PAR website. You can write to the mailing list at <par@perl.org>, or send an empty mail to <par-subscribe@perl.org> to participate in the discussion.

Please submit bug reports to <bug-par@rt.cpan.org>.

著作権

Copyright 2002, 2003 by Autrijus Tang <autrijus@autrijus.org>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html