.\" -*- mode: troff; coding: utf-8 -*- .TH "PKGINFO" "5" "2024-03-04" "Pacman 6.1.0" "راهنمای قالب بسته‌ها" .SH "نام (NAME)" .LP PKGINFO \- اطلاعات مربوط به بسته‌های مبتنی بر ALPM (نسخه ۲). .SH "توضیحات (DESCRIPTION)" .LP قالب \fBPKGINFO\fR یک قالب متنی است که متادیتای بسته را توصیف می‌کند. چنین فایل‌هایی در ریشه بسته‌های ALPM قرار دارند و \fB.PKGINFO\fR نامیده می‌شوند. آن‌ها به عنوان مثال توسط مدیران بسته برای ارزیابی و نمایش زمینه و بستر یک بسته در اکوسیستم آن استفاده می‌شوند. موارد کاربرد شامل نمایش متادیتای مشترک و ارتباط با سایر بسته‌ها است. .PP قالب \fBPKGINFO\fR در چندین نسخه وجود دارد. اطلاعات موجود در این سند مربوط به نسخه ۲ است که نسخه فعلی بوده و هم‌زمان با انتشار pacman 6.1.0 در تاریخ 2024-03-04 معرفی شده است. .SS قالب کلی .LP یک فایل \fBPKGINFO\fR از مجموعه‌ای از خطوط تشکیل شده است که هر کدام اطلاعاتی را درباره یکی از جنبه‌های بسته ارائه می‌دهند. خطوطی که با نویسه \(oq#\(cq شروع می‌شوند کامنت هستند و همیشه نادیده گرفته می‌شوند. فاصله‌های خالی ابتدای خطوط (Whitespace) همیشه نادیده گرفته می‌شوند. .PP مگر در مواردی که خلاف آن ذکر شده باشد، اطلاعات موجود در یک فایل \fBPKGINFO\fR باید منحصراً از مجموعه ۹۵ \fBنویسه اسکی قابل چاپ\fR[1] تشکیل شده باشد. .SS تغییرات نسبت به نسخه پیشین .LP کلمه کلیدی جدید \fBxdata\fR برای ردیابی داده‌های اضافه مربوط به بسته افزوده شده است. .SS کلمات کلیدی .LP هر خط اطلاعاتی را کدگذاری می‌کند که بیانگر انتساب یک کلمه کلیدی است. تمام انتساب‌های کلمات کلیدی شامل یک کلید از فهرست زیر هستند که بلافاصله پس از آن یک فاصله، یک علامت \(oq=\(cq، یک فاصله دیگر و سپس مقدار قرار می‌گیرد. .PP به‌طور پیش‌فرض، دقیقاً یک انتساب کلمه کلیدی به ازای هر کلمه کلیدی در یک فایل \fBPKGINFO\fR باید وجود داشته باشد. به عنوان استثنایی بر این قاعده، کلمات کلیدی \fBlicense\fR، \fBreplaces\fR، \fBgroup\fR، \fBconflict\fR، \fBprovides\fR، \fBbackup\fR، \fBdepend\fR، \fBoptdepend\fR، \fBmakedepend\fR و \fBcheckdepend\fR می‌توانند صفر یا چند بار مشخص شوند. به عنوان یک استثنای دیگر، کلمه کلیدی \fBxdata\fR یک یا چند بار ارائه می‌شود. .SS pkgname .LP نام بسته. مقدار آن یک \fBalpm-package-name\fR است (مانند \f(CRexample\fR). .SS pkgbase .LP مقدار \fBalpm-package-base\fR مربوط به بسته. مقدار آن یک \fBalpm-package-base\fR است (مانند \f(CRexample\fR). .SS xdata .LP داده‌های اضافی (e\fIx\fRtra \fIdata\fR) مرتبط با بسته. این کلمه کلیدی باید یک بار برای تعیین یک مقدار مشخص اختصاص یابد، اما پس از آن ممکن است چندین بار برای ارائه داده‌های اضافی بیشتر ارائه شود. مقدار آن یک رشته با کدگذاری UTF-8 است که نشان‌دهنده یک جفت کلید-مقدار دیگر است که با نویسه \(oq=\(cq از هم جدا شده‌اند (مانند \f(CRkey=value\fR). .PP یک فایل \fBPKGINFO\fR باید شامل یک انتساب کلمه کلیدی \fBxdata\fR باشد که انتساب \fBpkgtype\fR را در مقدار خود تعریف کند (مانند \f(CRpkgtype=pkg\fR). مقادیر معتبر برای \fBpkgtype\fR عبارتند از: \f(CRdebug\fR (برای بسته‌های اشکال‌زدایی)، \f(CRpkg\fR (برای بسته‌های تک‌بخشی)، \f(CRsrc\fR (برای بسته‌های منبع یا سورس) و \f(CRsplit\fR (برای بسته‌های چندبخشی یا تفکیک‌شده). .PP انتساب‌های کلمه کلیدی اضافی \fBxdata\fR ممکن است با رعایت قواعد کلی پیرامون قالب‌بندی مقادیر آن ارائه شوند. .SS pkgver .LP نسخه کامل بسته. توجه داشته باشید که این مورد نباید با \fBalpm-pkgver\fR که تنها نشان‌دهنده زیرمجموعه‌ای از این کلمه کلیدی است، اشتباه گرفته شود! مقدار آن یک \fBalpm-package-version\fR است، یا به شکل \fIfull\fR (کامل) یا به شکل \fIfull with epoch\fR (کامل به همراه epoch) (به ترتیب مانند \f(CR1.0.0-1\fR یا \f(CR1:1.0.0-1\fR). .SS pkgdesc .LP توضیحات بسته. مقدار آن یک رشته UTF-8 به طول صفر یا بیشتر نویسه است (مانند \f(CRA project used for something\fR). توضیحات بسته نباید هیچ فاصله خالی (Whitespace) در ابتدا یا انتها داشته باشند، نباید هیچ نویسه فاصله‌ای به جز فاصله ساده \(lq \(lq داشته باشند و نباید شامل فاصله‌های متوالی باشند. همچنین پیشنهاد می‌شود که \(lqکوتاه\(rq بوده و شامل نام بسته نباشد (به \fBpkgname\fR مراجعه کنید). .SS url .LP نشانی اینترنتی (URL) پروژه بسته. مقدار آن یک URL معتبر یا یک رشته خالی است (مانند \f(CRhttps://example.org\fR). .SS builddate .LP تاریخ و زمانی که ساخت بسته آغاز شده است. مقدار باید عددی باشد و ثانیه‌های سپری‌شده از مبدأ Epoch، یعنی زمان یونیکس (Unix time) را نشان دهد (مانند \f(CR1729181726\fR). .SS packager .LP شناسه کاربری (User ID) موجودیتی که بسته را ساخته است. این مقدار برای جستجو و شناسایی هویت کاربرد دارد و نشان‌دهنده یک \fBOpenPGP User ID\fR[2] است. به همین ترتیب، مقدار آن یک رشته با کدگذاری UTF-8 است که به‌طور مرسوم از یک نام و یک آدرس ایمیل تشکیل شده و با قالب توصیف‌شده در \fBRFC 2822\fR\c .UR e.g.%20%60John%20Doe%20%3Cjohn@example.org%3E%60 3 .UE \c \& هماهنگ است. .SS size .LP اندازه محتویات بسته (غیرفشرده و بازشده) بر حسب بایت. مقدار یک عدد صحیح غیرمنفی است که اندازه مطلق محتویات بسته را نشان می‌دهد، به‌طوری که چندین فایل دارای پیوند سخت (Hardlink) تنها یک بار شمرده می‌شوند (مانند \f(CR181849963\fR). .SS arch .LP معماری بسته (برای اطلاعات بیشتر به \fBalpm-architecture\fR مراجعه کنید). مقدار باید از مجموعه نویسه‌های الفبایی-عددی و \(oq_\(cq تشکیل شده باشد (مانند \f(CRx86_64\fR یا \f(CRany\fR). .SS license .LP مجوز یا پروانه‌ای که برای بسته اعمال می‌شود. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک شناسه مجوز را نشان می‌دهد که رشته‌ای با طول غیرصفر است (مانند \f(CRGPL\fR). اگرچه به جز طول آن، هیچ محدودیت خاصی برای مقدار اعمال نمی‌شود، اما اکیداً توصیه می‌شود که از عبارات مجوز SPDX استفاده شود (مانند \f(CRGPL-3.0-or-later\fR یا \f(CRApache-2.0 OR MIT\fR). برای اطلاعات بیشتر به \fBSPDX License List\fR[4] مراجعه کنید. .SS replaces .LP یک \fIمؤلفه مجازی\fR یا بسته دیگر که این بسته پس از نصب جایگزین آن می‌شود. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBreplacement\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS group .LP یک رشته دلخواه که نشان‌دهنده یک گروه در سطح توزیع است که بسته در آن قرار دارد. گروه‌ها به عنوان مثال توسط مدیران بسته برای دسته‌بندی بسته‌ها و امکان نصب دسته‌جمعی آن‌ها، یا توسط نرم‌افزارهای دیگر برای نمایش اطلاعات مربوط به این بسته‌ها استفاده می‌شوند. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن به وسیله یک رشته UTF-8 نشان داده می‌شود. اگرچه استفاده از رشته UTF-8 امکان‌پذیر است، اما اکیداً توصیه می‌شود که در عوض از قالب \fBpkgname\fR برای این مقدار استفاده شود، زیرا مدیران بسته ممکن است از \fBgroup\fR برای نصب کل بسته‌های یک گروه استفاده کنند. .SS conflict .LP یک \fIمؤلفه مجازی\fR یا بسته دیگر که این بسته با آن تداخل دارد. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBconflict\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS provides .LP یک \fIمؤلفه مجازی\fR یا بسته دیگر که این بسته آن را فراهم می‌کند. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBprovision\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS backup .LP یک مسیر فایل نسبی از فایلی در داخل بسته، که فایلی را مشخص می‌کند تا مدیر بسته در صورت تغییر یا حذف در طول فرآیند به‌روزرسانی بسته، از آن نسخه پشتیبان تهیه کند (به فایل‌های \(oq.pacnew\(cq و \(oq.pacsave\(cq در \fBpacman\fR مراجعه کنید). این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار باید یک مسیر فایل یونیکس نسبی و معتبر باشد (مانند \f(CRetc/package.conf\fR). .SS depend .LP یک وابستگی زمان اجرا برای بسته (\fIمؤلفه مجازی\fR یا بسته). این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBrun-time dependency\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS optdepend .LP یک وابستگی اختیاری برای بسته (\fIمؤلفه مجازی\fR یا بسته). این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBoptional dependency\fR است (مانند \f(CRexample\fR یا \f(CRexample: this is a description\fR). .SS makedepend .LP یک وابستگی زمان ساخت برای بسته (\fIمؤلفه مجازی\fR یا بسته). این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBbuild dependency\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS checkdepend .LP یک وابستگی برای اجرای آزمایش‌های پروژه بالادستی بسته. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBtest dependency\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SH "مثال‌ها (EXAMPLES)" .LP .EX pkgname = example pkgbase = example xdata = pkgtype=pkg pkgver = 1:1.0.0-1 pkgdesc = A project that does something url = https://example.org builddate = 1729181726 packager = John Doe size = 181849963 arch = any license = GPL-3.0-or-later license = LGPL-3.0-or-later replaces = other-package>0.9.0-3 group = package-group group = other-package-group conflict = conflicting-package<1.0.0 conflict = other-conflicting-package<1.0.0 provides = some-component provides = some-other-component=1:1.0.0-1 backup = etc/example/config.toml backup = etc/example/other-config.txt depend = glibc depend = gcc-libs optdepend = python: for special-python-script.py optdepend = ruby: for special-ruby-script.rb makedepend = cmake makedepend = python-sphinx checkdepend = extra-test-tool checkdepend = other-extra-test-tool .EE .SH "همچنین ببینید (SEE ALSO)" .LP \fBalpm-pkginfo\fR(1), \fBPKGBUILD\fR(5), \fBmakepkg.conf\fR(5), \fBalpm-architecture\fR(7), \fBalpm-comparison\fR(7), \fBalpm-package-name\fR(7), \fBalpm-package-relation\fR(7), \fBalpm-package-version\fR(7), \fBalpm-pkgver\fR(7), \fBmakepkg\fR(8), \fBpacman\fR(8) .SH "یادداشت‌ها (NOTES)" .IP "1." 3 \fBprintable ASCII characters\fR .IP .UR https://en.wikipedia.org/wiki/ASCII#Printable_characters .UE .IP "2." 3 \fBOpenPGP User ID\fR .IP .UR https://openpgp.dev/book/certificates.html#user-ids .UE .IP "3." 3 \fBRFC 2822\fR .IP .UR https://www.rfc-editor.org/rfc/rfc2822 .UE .IP "4." 3 \fBSPDX License List\fR .IP .UR https://spdx.org/licenses .UE