PAR(1) User Contributed Perl Documentation PAR(1)

par.pl - ساخت و اجرای بایگانی‌های Perl

(لطفاً برای راه‌های آسان ساخت فایل‌های اجرایی خودکفا، اسکریپت‌ها یا بایگانی‌های PAR از برنامه‌های perl، دستور pp را ببینید.)

برای ساخت یک توزیع PAR از توزیع پودمان CPAN:

% 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/

برای کار با یک توزیع PAR:

% 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

برای استفاده از Hello.pm موجود در ./foo.par:

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

همان کار، اما با جستجوی foo.par در @INC؛

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

اجرای test.pl یا script/test.pl از درون foo.par:

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

برای ساخت یک اسکریپت خودکفا حاوی یک فایل PAR:

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

جهت جاسازی پودمان‌های غیرپایه‌ای (non-core) و اشیاء اشتراکی لازم برای اجرای PAR (مانند "Zlib"، "IO"، "Cwd" و غیره)، از پرچم -b استفاده کنید:

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

اگر مایلید پودمان‌های پایه‌ای (core) نیز همراه آن جاسازی شوند، به جای آن از پرچم -B استفاده کنید:

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

این ویژگی به‌ویژه هنگام ساخت فایل‌های اجرایی باینری مستقل کاربرد دارد؛ برای جزئیات pp را ببینید.

این دستور مستقل، تقریباً همان قابلیت‌های "perl -MPAR" را ارائه می‌دهد، با این تفاوت که فایل‌های از پیش بارگذاری‌شدهٔ .par را به جای "-MPAR=foo.par"، از طریق "-Afoo.par" دریافت می‌کند.

علاوه بر این، به شما امکان می‌دهد یک توزیع CPAN را به یک توزیع PAR تبدیل کرده و چنین توزیع‌هایی را مدیریت کنید. برای اطلاعات بیشتر دربارهٔ توزیع‌های PAR، به PAR::Dist مراجعه کنید.

اگر کامپایلر C داشته باشید، یا یک بستهٔ باینری از پیش ساخته‌شدهٔ PAR برای پلتفرم شما موجود باشد، نسخهٔ باینری par.pl نیز به‌طور خودکار تحت نام parl نصب خواهد شد. می‌توانید از آن برای اجرای فایل‌های .par استفاده کنید:

# 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

با این حال، اگر بایگانی .par شامل فایل main.pl یا script/main.pl باشد، آن فایل به جای آن اجرا می‌شود:

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

در نهایت، گزینهٔ "-O" یک فایل اجرایی باینری مستقل از یک فایل PAR ایجاد می‌کند:

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

با پرچم "--par-options"، باینری‌های تولیدشده می‌توانند مانند "parl" برای بسته‌بندی باینری‌های جدید عمل کنند:

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

قالب فایل اجرایی مستقل، صرفاً حاصل الحاق عناصر زیر به یکدیگر است:

  • خود فایل اجرایی

    چه در قالب متن ساده (par.pl) و چه در قالب اجرایی محلی سیستم (parl یا parl.exe).

  • هر تعداد فایل تعبیه‌شده

    این فایل‌ها معمولاً برای راه‌اندازی اولیهٔ وابستگی‌های گوناگون XS در PAR استفاده می‌شوند. هر بخش شامل موارد زیر است:

رشتهٔ جادویی ""FILE""
طول نام فایل در قالب pack('N') به علاوه ۹
۸ بایت هش CRC32 کدگذاری‌شده به صورت هگزادسیمال از محتوای فایل
یک اسلش منفرد (""/"")
نام فایل (بدون مسیر)
طول فایل در قالب pack('N')
محتوای فایل (فشرده‌نشده)
  • یک فایل PAR

    این مورد تنها یک فایل zip است که با رشتهٔ جادویی ""PK\003\004"" شروع می‌شود.

  • بخش پایانی

    نام حافظهٔ نهان (cache) از پیش محاسبه‌شده. یک رشتهٔ pack('Z40') از مقدار -T (--tempcache) یا هش فایل، که در ادامهٔ آن "\0CACHE" می‌آید. هش فایل با Digest::SHA محاسبه می‌شود.

    یک عدد pack('N') از طول کل بخش‌های FILE و PAR، که پس از آن یک رشتهٔ جادویی ۸ بایتی قرار دارد: ""\012PAR.pm\012"".

PAR, PAR::Dist, parl, pp

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

می‌توانید به فهرست رایانامه در <par@perl.org> بنویسید، یا برای شرکت در گفتگوها یک رایانامهٔ خالی به <par-subscribe@perl.org> ارسال کنید. بایگانی‌های فهرست رایانامه در https://www.mail-archive.com/par@perl.org یا https://groups.google.com/g/perl.par در دسترس هستند.

لطفاً گزارش باگ‌ها را به https://github.com/rschupp/PAR-Packer/issues ارسال کنید.

حق نشر ۲۰۰۲-۲۰۰۹ توسط Audrey Tang <cpan@audreyt.org>.

مطابق با مادهٔ هشتم مجوز Artistic License، نه این برنامه و نه برنامهٔ مرتبط parl هیچ‌گونه محدودیت مجوزی را بر فایل‌های تولیدشده توسط اجرای خود اعمال نمی‌کنند:

"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 Package's
interfaces visible to the end user of the commercial distribution.
Such use shall not be construed as a distribution of this Package."

بنابراین، تا زمانی که کتابخانه‌های شخص ثالث بسته‌بندی‌شده نیز تحت مجوز Artistic License در دسترس باشند، شما کاملاً مجازید هرگونه مجوزی را روی فایل اجرایی حاصل قرار دهید.

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت همان شرایط خود Perl بازتوزیع کرده یا تغییر دهید.

LICENSE را ببینید.

2026-04-05 perl v5.42.2