рдпрд╣ рдХрдорд╛рдВрдб рдкреИрд░рд╛-рдЖрд░реНрдХрд╛рдЗрд╡рдк рд╣реИ рдЬрд┐рд╕реЗ рд╣рдорд╛рд░реЗ рдХрдИ рдореБрдлреНрдд рдСрдирд▓рд╛рдЗрди рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдЬреИрд╕реЗ рдЙрдмрдВрдЯреВ рдСрдирд▓рд╛рдЗрди, рдлреЗрдбреЛрд░рд╛ рдСрдирд▓рд╛рдЗрди, рд╡рд┐рдВрдбреЛрдЬ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдпрд╛ рдореИрдХ рдУрдПрд╕ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд╡рд░реНрдХреНрд╕ рдлреНрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрд╛рд░реНрдпрдХреНрд░рдо:
рдирд╛рдо
par.pl - рдкрд░реНрд▓ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдмрдирд╛рдПрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ
SYNOPSIS
(рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ PAR . рдмрдирд╛рдиреЗ рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рдкреАрдкреА рджреЗрдЦреЗрдВ
рдкрд░реНрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рд╕реЗ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ред)
рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдП PAR рд╡рд┐рддрд░рдг рд╕реАрдкреАрдПрдПрди рдореЙрдбреНрдпреВрд▓ рд╡рд┐рддрд░рдг рд╕реЗ:
% par.pl -p # рд╡рд░реНрддрдорд╛рди рдкрде рдХреЗ рддрд╣рдд рдПрдХ PAR рдЬрд┐рд▓рд╛ рдмрдирд╛рдПрдВ
% par.pl -p рдлреВ-0.01 # рдорд╛рди рд▓реЗрдВ рдХрд┐ рдлреВ-0.01/ рдореЗрдВ рдЕрдирдкреИрдХреНрдб рд╕реАрдкреАрдПрдПрди рдЬрд┐рд▓рд╛ рд╣реИ
рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП a PAR рд╡рд┐рддрд░рдг:
% par.pl -i Foo-0.01-i386-freebsd-5.8.0.par # рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
% par.pl -i http://foo.com/Foo-0.01 # рдЖрд░реНрдХрдирд╛рдо + рдкрд░реНрд▓рд╡рд░ рдХреЛ рдСрдЯреЛ-рдЕрдкреЗрдВрдб рдХрд░рддрд╛ рд╣реИ
% par.pl -i cpan://AUTRIJUS/PAR-0.74 # CPAN рд▓реЗрдЦрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
% par.pl -u рдлреВ-0.01-i386-freebsd-5.8.0.par # рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓
% par.pl -s рдлреВ-0.01-i386-freebsd-5.8.0.par # рд╕рд╛рдЗрди
% par.pl -v рдлреВ-0.01-i386-freebsd-5.8.0.par # рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдорд╕реНрдХрд╛рд░ рдЕрдкрд░рд╛рд╣реНрди рд╕реЗ ./foo.par:
% par.pl -A./foo.par -MHhello
% par.pl -A./foo -MHhello # .par рднрд╛рдЧ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ
рдПрдХ рд╣реА рдмрд╛рдд, рд▓реЗрдХрд┐рди рдЦреЛрдЬреЗрдВ рдлреВ.рдкрд╛рд░ рдореЗрдВ @рдЖрдИрдПрдирд╕реА;
% par.pl -Ifoo.par -MHhello
% par.pl -Ifoo -MHhello # ditto
рд░рди рдкрд░реАрдХреНрд╖рдг.pl or рд╕реНрдХреНрд░рд┐рдкреНрдЯ/рдкрд░реАрдХреНрд╖рдг.pl рд╕реЗ рдлреВ.рдкрд╛рд░:
% par.pl foo.par test.pl # рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 'main.pl' рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ,
# рдЕрдиреНрдпрдерд╛ 'test.pl' рдЪрд▓рд╛рдПрдБ
PAR рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реА рд╕реЗрд▓реНрдл-рдХрдВрдЯреЗрдирд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
% par.pl -O./foo.pl foo.par
% ./foo.pl test.pl # рдКрдкрд░ рдХреЗ рд╕рдорд╛рди
PAR рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЧреИрд░-рдХреЛрд░ рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕рд╛рдЭрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬреИрд╕реЗ
"рдЬрд╝реНрд▓рд┐рдм", "рдЖрдИрдУ", "рд╕реАрдбрдмреНрд▓реНрдпреВрдбреА", рдЖрджрд┐), рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ -b рдЭрдВрдбрд╛:
% par.pl -b -O./foo.pl foo.par
% ./foo.pl test.pl # рдХрд╣реАрдВ рднреА рдХреЛрд░ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХреЗ рд╕рд╛рде рдЪрд▓рддрд╛ рд╣реИ
рдЕрдЧрд░ рдЖрдк рднреА рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдореВрд▓ рд╕рд╛рде рдореЗрдВ рдореЙрдбреНрдпреВрд▓, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ -B рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЭрдВрдбрд╛:
% par.pl -B -O./foo.pl foo.par
% ./foo.pl test.pl # рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╣реАрдВ рднреА рдЪрд▓рддрд╛ рд╣реИ
рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдмрд╛рдЗрдирд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рддреЗ рд╕рдордп рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ; рдкреАрдкреА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ
рд╡рд┐рд╡рд░рдгред
рд╡рд░реНрдгрди
рдпрд╣ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдХрдорд╛рдВрдб рдореЛрдЯреЗ рддреМрд░ рдкрд░ "perl -MPAR" рдЬреИрд╕реА рд╣реА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ it
рдкреНрд░реА-рд▓реЛрдбреЗрдб рд▓реЗрддрд╛ рд╣реИ рдкрд╛рд░реЗ "-MPAR=foo.par" рдХреЗ рдмрдЬрд╛рдп "-Afoo.par" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╣ рдЖрдкрдХреЛ CPAN рд╡рд┐рддрд░рдг рдХреЛ PAR рд╡рд┐рддрд░рдг рдореЗрдВ рдмрджрд▓рдиреЗ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА
рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рддрд░рдг рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░реЗрдВред PAR рд╡рд┐рддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ
PAR::рдЬрд┐рд▓рд╛ред
рджреНрд╡рд┐рдЪрд░ PAR рд▓реЛрдбрд░ (рдкрд╛рд░реНрд▓)
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ C рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИ, рдпрд╛ рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рдмрд╛рдЗрдирд░реА рдкреИрдХреЗрдЬ рд╣реИ PAR рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ
рдордВрдЪ, рдХрд╛ рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╕рдВрд╕реНрдХрд░рдг рдкрд╛рд░.pl рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рд╕рдВрд╕рджреАрдп. рдЖрдк
рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдкрд╛рд░реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ:
# рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ script/run.pl рдЪрд▓рд╛рддрд╛ рд╣реИ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ lib/* рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
% parl myapp.par run.pl # рд░рди run.pl рдпрд╛ script/run.pl myapp.par . рдореЗрдВ
% parl otherapp.pl # рд╕рд╛рдорд╛рдиреНрдп рдкрд░реНрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднреА рдЪрд▓рд╛рддрд╛ рд╣реИ
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдкрд╛рд░реЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдпрд╛ рддреЛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдореБрдЦреНрдп.pl or рд╕реНрдХреНрд░рд┐рдкреНрдЯ/рдореБрдЦреНрдп.pl, рдЗрд╕рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдмрдЬрд╛рдп:
% parl myapp.par run.pl # main.pl рдЪрд▓рд╛рддрд╛ рд╣реИ, 'run.pl' рдХреЗ рд╕рд╛рде @ARGV
рдЕрдВрдд рдореЗрдВ, "-O" рд╡рд┐рдХрд▓реНрдк рдПрдХ PAR рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдмрд╛рдЗрдирд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рддрд╛ рд╣реИ:
% рдкрд╛рд░реНрд▓ -рдмреА -рдУрдорд╛рдпрдкреНрдк myapp.par
% ./myapp # рдЗрд╕реЗ рдмрд┐рдирд╛ рдкрд░реНрд▓ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рдХрд╣реАрдВ рднреА рдЪрд▓рд╛рдПрдБ
"--par-options" рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде, рдЙрддреНрдкрдиреНрди рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдирдП рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "parl" рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
% ./myapp --par-options -Omyap2 myapp.par # ./myapp рдХреЗ рд╕рдорд╛рди
% ./myapp --par-options -Omyap3 myap3.par # рдЕрдм рдЕрд▓рдЧ PAR рдХреЗ рд╕рд╛рде
рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рд╛рд░реВрдк
рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░реВрдк рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ:
┬╖ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реА
рдпрд╛ рддреЛ рд╕рд╛рджреЗ-рдкрд╛рда рдореЗрдВ (рдкрд╛рд░.pl) рдпрд╛ рдореВрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░рд╛рд░реВрдк (рд╕рдВрд╕рджреАрдп or parl.exe).
рдПрдореНрдмреЗрдбреЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдХреЛрдИ рднреА рд╕рдВрдЦреНрдпрд╛
рдпреЗ рдЖрдо рддреМрд░ рдкрд░ PAR рдХреА рд╡рд┐рднрд┐рдиреНрди XS рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ
рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдЬрд╛рджреВ рд╕реНрдЯреНрд░рд┐рдВрдЧ ""рдлрд╝рд╛рдЗрд▓""
"рдкреИрдХ ('рдПрди')" рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреА рд▓рдВрдмрд╛рдИ рдкреНрд▓рд╕ 9
рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╣реЗрдХреНрд╕-рдПрдиреНрдХреЛрдбреЗрдб CRC8 рдХреЗ 32 рдмрд╛рдЗрдЯреНрд╕
рдПрдХ рдПрдХрд▓ рд╕реНрд▓реИрд╢ (""/"")
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо (рдкрде рдХреЗ рдмрд┐рдирд╛)
"рдкреИрдХ ('рдПрди')" рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреА рд▓рдВрдмрд╛рдИ
рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА (рд╕рдВрдкреАрдбрд╝рд┐рдд рдирд╣реАрдВ)
┬╖ рдПрдХ PAR рдлрд╝рд╛рдЗрд▓
рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХреА рд╢реБрд░реБрдЖрдд рдЬрд╛рджреБрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ ""PK\003\004"" рд╕реЗ рд╣реЛрддреА рд╣реИред
┬╖ рдЦрдВрдб рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛
рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдХреИрд╢ рдирд╛рдоред -T (--tempcache) рдпрд╛ . рдХреЗ рдорд╛рди рдХрд╛ рдПрдХ рдкреИрдХ ('Z40') рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╣реИрд╢, рдЙрд╕рдХреЗ рдмрд╛рдж "\0CACHE"ред рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ
рдбрд╛рдЗрдЬреЗрд╕реНрдЯ :: SHA, рдбрд╛рдЗрдЬреЗрд╕реНрдЯ :: SHA1, рдпрд╛ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ :: MD5ред рдпрджрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдореЙрдбреНрдпреВрд▓ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ
рдлрд╝рд╛рдЗрд▓ рдХрд╛ "mtime" рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
FILE рдФрд░ PAR рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреА рдХреБрд▓ рд▓рдВрдмрд╛рдИ рдХрд╛ рдПрдХ рдкреИрдХ('N') рд╕рдВрдЦреНрдпрд╛, рдЙрд╕рдХреЗ рдмрд╛рдж 8-рдмрд╛рдЗрдЯреНрд╕
рдореИрдЬрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ: ""\012PAR.pm\012""ред
onworks.net рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд▓рд╛рдЗрди par-archivep рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ