1PAR(1)                User Contributed Perl Documentation               PAR(1)
2
3
4

NAME

6       par.pl - Make and run Perl Archives
7

SYNOPSIS

9       (Please see pp for convenient ways to make self-contained executables,
10       scripts or PAR archives from perl programs.)
11
12       To make a PAR distribution from a CPAN module distribution:
13
14           % par.pl -p                 # make a PAR dist under the current path
15           % par.pl -p Foo-0.01        # assume unpacked CPAN dist in Foo-0.01/
16
17       To manipulate a PAR distribution:
18
19           % par.pl -i Foo-0.01-i386-freebsd-5.8.0.par # install
20           % par.pl -i http://foo.com/Foo-0.01         # auto-appends archname + perlver
21           % par.pl -i cpan://AUTRIJUS/PAR-0.74        # uses CPAN author directory
22           % par.pl -u Foo-0.01-i386-freebsd-5.8.0.par # uninstall
23           % par.pl -s Foo-0.01-i386-freebsd-5.8.0.par # sign
24           % par.pl -v Foo-0.01-i386-freebsd-5.8.0.par # verify
25
26       To use Hello.pm from ./foo.par:
27
28           % par.pl -A./foo.par -MHello
29           % par.pl -A./foo -MHello    # the .par part is optional
30
31       Same thing, but search foo.par in the @INC;
32
33           % par.pl -Ifoo.par -MHello
34           % par.pl -Ifoo -MHello      # ditto
35
36       Run test.pl or script/test.pl from foo.par:
37
38           % par.pl foo.par test.pl    # looks for 'main.pl' by default,
39                                       # otherwise run 'test.pl'
40
41       To make a self-containing script containing a PAR file :
42
43           % par.pl -O./foo.pl foo.par
44           % ./foo.pl test.pl          # same as above
45
46       To embed the necessary non-core modules and shared objects for PAR's
47       execution (like "Zlib", "IO", "Cwd", etc), use the -b flag:
48
49           % par.pl -b -O./foo.pl foo.par
50           % ./foo.pl test.pl          # runs anywhere with core modules installed
51
52       If you also wish to embed core modules along, use the -B flag instead:
53
54           % par.pl -B -O./foo.pl foo.par
55           % ./foo.pl test.pl          # runs anywhere with the perl interpreter
56
57       This is particularly useful when making stand-alone binary executables;
58       see pp for details.
59

DESCRIPTION

61       This stand-alone command offers roughly the same feature as "perl
62       -MPAR", except that it takes the pre-loaded .par files via "-Afoo.par"
63       instead of "-MPAR=foo.par".
64
65       Additionally, it lets you convert a CPAN distribution to a PAR
66       distribution, as well as manipulate such distributions.  For more
67       information about PAR distributions, see PAR::Dist.
68
69   Binary PAR loader (parl)
70       If you have a C compiler, or a pre-built binary package of PAR is
71       available for your platform, a binary version of par.pl will also be
72       automatically installed as parl.  You can use it to run .par files:
73
74           # runs script/run.pl in archive, uses its lib/* as libraries
75           % parl myapp.par run.pl     # runs run.pl or script/run.pl in myapp.par
76           % parl otherapp.pl          # also runs normal perl scripts
77
78       However, if the .par archive contains either main.pl or script/main.pl,
79       it is used instead:
80
81           % parl myapp.par run.pl     # runs main.pl, with 'run.pl' as @ARGV
82
83       Finally, the "-O" option makes a stand-alone binary executable from a
84       PAR file:
85
86           % parl -B -Omyapp myapp.par
87           % ./myapp                   # run it anywhere without perl binaries
88
89       With the "--par-options" flag, generated binaries can act as "parl" to
90       pack new binaries:
91
92           % ./myapp --par-options -Omyap2 myapp.par   # identical to ./myapp
93           % ./myapp --par-options -Omyap3 myap3.par   # now with different PAR
94
95   Stand-alone executable format
96       The format for the stand-alone executable is simply concatenating the
97       following elements:
98
99       ·   The executable itself
100
101           Either in plain-text (par.pl) or native executable format (parl or
102           parl.exe).
103
104       ·   Any number of embedded files
105
106           These are typically used for bootstrapping PAR's various XS
107           dependencies.  Each section contains:
108
109           The magic string ""FILE""
110           Length of file name in "pack('N')" format plus 9
111           8 bytes of hex-encoded CRC32 of file content
112           A single slash (""/"")
113           The file name (without path)
114           File length in "pack('N')" format
115           The file's content (not compressed)
116       ·   One PAR file
117
118           This is just a zip file beginning with the magic string
119           ""PK\003\004"".
120
121       ·   Ending section
122
123           The pre-computed cache name.  A pack('Z40') string of the value of
124           -T (--tempcache) or the hash of the file, followed by "\0CACHE".
125           The hash of the file is calculated with Digest::SHA, Digest::SHA1,
126           or Digest::MD5.  If none of those modules is available, the "mtime"
127           of the file is used.
128
129           A pack('N') number of the total length of FILE and PAR sections,
130           followed by a 8-bytes magic string: ""\012PAR.pm\012"".
131

SEE ALSO

133       PAR, PAR::Dist, parl, pp
134

AUTHORS

136       Audrey Tang <cpan@audreyt.org>, Steffen Mueller <smueller@cpan.org>
137
138       <http://par.perl.org/> is the official PAR website.  You can write to
139       the mailing list at <par@perl.org>, or send an empty mail to
140       <par-subscribe@perl.org> to participate in the discussion.
141
142       Please submit bug reports to <bug-par@rt.cpan.org>.
143
145       Copyright 2002-2009 by Audrey Tang <cpan@audreyt.org>.
146
147       Neither this program nor the associated parl program impose any
148       licensing restrictions on files generated by their execution, in
149       accordance with the 8th article of the Artistic License:
150
151           "Aggregation of this Package with a commercial distribution is
152           always permitted provided that the use of this Package is embedded;
153           that is, when no overt attempt is made to make this Package's
154           interfaces visible to the end user of the commercial distribution.
155           Such use shall not be construed as a distribution of this Package."
156
157       Therefore, you are absolutely free to place any license on the
158       resulting executable, as long as the packed 3rd-party libraries are
159       also available under the Artistic License.
160
161       This program is free software; you can redistribute it and/or modify it
162       under the same terms as Perl itself.
163
164       See <http://www.perl.com/perl/misc/Artistic.html>
165
166
167
168perl v5.12.3                      2010-05-17                            PAR(1)
Impressum