GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PAR.PL (1)

.ds Aq ’

NAME

par.pl - Make and run Perl Archives

CONTENTS

SYNOPSIS

(Please see pp for convenient ways to make self-contained executables, scripts or PAR archives from perl programs.)

To make a PAR distribution from a CPAN module distribution:



    % par.pl -p                 # make a PAR dist under the current path
    % par.pl -p Foo-0.01        # assume unpacked CPAN dist in Foo-0.01/



To manipulate a PAR distribution:



    % par.pl -i Foo-0.01-i386-freebsd-5.8.0.par # install
    % par.pl -i http://foo.com/Foo-0.01         # auto-appends archname + perlver
    % par.pl -i cpan://AUTRIJUS/PAR-0.74        # uses CPAN author directory
    % par.pl -u Foo-0.01-i386-freebsd-5.8.0.par # uninstall
    % par.pl -s Foo-0.01-i386-freebsd-5.8.0.par # sign
    % par.pl -v Foo-0.01-i386-freebsd-5.8.0.par # verify



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



    % par.pl -A./foo.par -MHello
    % par.pl -A./foo -MHello    # the .par part is optional



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



    % par.pl -Ifoo.par -MHello
    % par.pl -Ifoo -MHello      # ditto



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



    % par.pl foo.par test.pl    # looks for main.pl by default,
                                # otherwise run test.pl



To make a self-containing script containing a PAR file :



    % par.pl -O./foo.pl foo.par
    % ./foo.pl test.pl          # same as above



To embed the necessary non-core modules and shared objects for PAR’s execution (like Zlib, IO, Cwd, etc), use the <B>-bB> flag:



    % par.pl -b -O./foo.pl foo.par
    % ./foo.pl test.pl          # runs anywhere with core modules installed



If you also wish to embed core modules along, use the <B>-BB> flag instead:



    % par.pl -B -O./foo.pl foo.par
    % ./foo.pl test.pl          # runs anywhere with the perl interpreter



This is particularly useful when making stand-alone binary executables; see pp for details.

DESCRIPTION

This stand-alone command offers roughly the same feature as perl -MPAR, except that it takes the pre-loaded .par files via -Afoo.par instead of -MPAR=foo.par.

Additionally, it lets you convert a CPAN distribution to a PAR distribution, as well as manipulate such distributions. For more information about PAR distributions, see PAR::Dist.

    Binary PAR loader (parl)

If you have a C compiler, or a pre-built binary package of <B>PARB> is available for your platform, a binary version of <B>par.plB> will also be automatically installed as <B>parlB>. You can use it to run .par files:



    # runs script/run.pl in archive, uses its lib/* as libraries
    % parl myapp.par run.pl     # runs run.pl or script/run.pl in myapp.par
    % parl otherapp.pl          # also runs normal perl scripts



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



    % parl myapp.par run.pl     # runs main.pl, with run.pl as @ARGV



Finally, the -O option makes a stand-alone binary executable from a PAR file:



    % parl -B -Omyapp myapp.par
    % ./myapp                   # run it anywhere without perl binaries



With the --par-options flag, generated binaries can act as parl to pack new binaries:



    % ./myapp --par-options -Omyap2 myapp.par   # identical to ./myapp
    % ./myapp --par-options -Omyap3 myap3.par   # now with different PAR



    Stand-alone executable format

The format for the stand-alone executable is simply concatenating the following elements:
o The executable itself

Either in plain-text (par.pl) or native executable format (parl or parl.exe).

o Any number of embedded files

These are typically used for bootstrapping PAR’s various XS dependencies. Each section contains:
The magic string ‘‘FILE’’
Length of file name in pack(N) format plus 9
8 bytes of hex-encoded CRC32 of file content
A single slash (‘‘/’’)
The file name (without path)
File length in pack(N) format
The file’s content (not compressed)

o One PAR file

This is just a zip file beginning with the magic string "PK\003\004".

o Ending section

The pre-computed cache name. A pack(’Z40’) string of the value of -T (--tempcache) or the hash of the file, followed by \0CACHE. The hash of the file is calculated with Digest::SHA, Digest::SHA1, or Digest::MD5. If none of those modules is available, the mtime of the file is used.

A pack(’N’) number of the total length of FILE and PAR sections, followed by a 8-bytes magic string: "\012PAR.pm\012".

SEE ALSO

PAR, PAR::Dist, parl, pp

AUTHORS

Audrey Tang <cpan@audreyt.org>, Steffen Mueller <smueller@cpan.org>

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

Copyright 2002-2009 by Audrey Tang <cpan@audreyt.org>.

Neither this program nor the associated parl program impose any licensing restrictions on files generated by their execution, in accordance with the 8th article of the Artistic License:



    "Aggregation of this Package with a commercial distribution is
    always permitted provided that the use of this Package is embedded;
    that is, when no overt attempt is made to make this Packages
    interfaces visible to the end user of the commercial distribution.
    Such use shall not be construed as a distribution of this Package."



Therefore, you are absolutely free to place any license on the resulting executable, as long as the packed 3rd-party libraries are also available under the Artistic License.

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>

Search for    or go to Top of page |  Section 1 |  Main Index


perl v5.20.3 PAR (1) 2016-01-12

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.