| PKGINFOv2(5) | راهنمای قالب بستهها | PKGINFOv2(5) |
نام (NAME)
PKGINFOv2 - اطلاعات مربوط به بستههای مبتنی بر ALPM (نسخه ۲).
توضیحات (DESCRIPTION)
قالب PKGINFO یک قالب متنی است که متادیتای بسته را توصیف میکند. چنین فایلهایی در ریشه بستههای ALPM قرار دارند و .PKGINFO نامیده میشوند. آنها به عنوان مثال توسط مدیران بسته برای ارزیابی و نمایش زمینه و بستر یک بسته در اکوسیستم آن استفاده میشوند. موارد کاربرد شامل نمایش متادیتای مشترک و ارتباط با سایر بستهها است.
قالب PKGINFO در چندین نسخه وجود دارد. اطلاعات موجود در این سند مربوط به نسخه ۲ است که نسخه فعلی بوده و همزمان با انتشار pacman 6.1.0 در تاریخ 2024-03-04 معرفی شده است.
قالب کلی
یک فایل PKGINFO از مجموعهای از خطوط تشکیل شده است که هر کدام اطلاعاتی را درباره یکی از جنبههای بسته ارائه میدهند. خطوطی که با نویسه ‘#’ شروع میشوند کامنت هستند و همیشه نادیده گرفته میشوند. فاصلههای خالی ابتدای خطوط (Whitespace) همیشه نادیده گرفته میشوند.
مگر در مواردی که خلاف آن ذکر شده باشد، اطلاعات موجود در یک فایل PKGINFO باید منحصراً از مجموعه ۹۵ نویسه اسکی قابل چاپ[1] تشکیل شده باشد.
تغییرات نسبت به نسخه پیشین
کلمه کلیدی جدید xdata برای ردیابی دادههای اضافه مربوط به بسته افزوده شده است.
کلمات کلیدی
هر خط اطلاعاتی را کدگذاری میکند که بیانگر انتساب یک کلمه کلیدی است. تمام انتسابهای کلمات کلیدی شامل یک کلید از فهرست زیر هستند که بلافاصله پس از آن یک فاصله، یک علامت ‘=’، یک فاصله دیگر و سپس مقدار قرار میگیرد.
بهطور پیشفرض، دقیقاً یک انتساب کلمه کلیدی به ازای هر کلمه کلیدی در یک فایل PKGINFO باید وجود داشته باشد. به عنوان استثنایی بر این قاعده، کلمات کلیدی license، replaces، group، conflict، provides، backup، depend، optdepend، makedepend و checkdepend میتوانند صفر یا چند بار مشخص شوند. به عنوان یک استثنای دیگر، کلمه کلیدی xdata یک یا چند بار ارائه میشود.
pkgname
نام بسته. مقدار آن یک alpm-package-name است (مانند example).
pkgbase
مقدار alpm-package-base مربوط به بسته. مقدار آن یک alpm-package-base است (مانند example).
xdata
دادههای اضافی (extra data) مرتبط با بسته. این کلمه کلیدی باید یک بار برای تعیین یک مقدار مشخص اختصاص یابد، اما پس از آن ممکن است چندین بار برای ارائه دادههای اضافی بیشتر ارائه شود. مقدار آن یک رشته با کدگذاری UTF-8 است که نشاندهنده یک جفت کلید-مقدار دیگر است که با نویسه ‘=’ از هم جدا شدهاند (مانند key=value).
یک فایل PKGINFO باید شامل یک انتساب کلمه کلیدی xdata باشد که انتساب pkgtype را در مقدار خود تعریف کند (مانند pkgtype=pkg). مقادیر معتبر برای pkgtype عبارتند از: debug (برای بستههای اشکالزدایی)، pkg (برای بستههای تکبخشی)، src (برای بستههای منبع یا سورس) و split (برای بستههای چندبخشی یا تفکیکشده).
انتسابهای کلمه کلیدی اضافی xdata ممکن است با رعایت قواعد کلی پیرامون قالببندی مقادیر آن ارائه شوند.
pkgver
نسخه کامل بسته. توجه داشته باشید که این مورد نباید با alpm-pkgver که تنها نشاندهنده زیرمجموعهای از این کلمه کلیدی است، اشتباه گرفته شود! مقدار آن یک alpm-package-version است، یا به شکل full (کامل) یا به شکل full with epoch (کامل به همراه epoch) (به ترتیب مانند 1.0.0-1 یا 1:1.0.0-1).
pkgdesc
توضیحات بسته. مقدار آن یک رشته UTF-8 به طول صفر یا بیشتر نویسه است (مانند A project used for something). توضیحات بسته نباید هیچ فاصله خالی (Whitespace) در ابتدا یا انتها داشته باشند، نباید هیچ نویسه فاصلهای به جز فاصله ساده “ “ داشته باشند و نباید شامل فاصلههای متوالی باشند. همچنین پیشنهاد میشود که “کوتاه” بوده و شامل نام بسته نباشد (به pkgname مراجعه کنید).
url
نشانی اینترنتی (URL) پروژه بسته. مقدار آن یک URL معتبر یا یک رشته خالی است (مانند https://example.org).
builddate
تاریخ و زمانی که ساخت بسته آغاز شده است. مقدار باید عددی باشد و ثانیههای سپریشده از مبدأ Epoch، یعنی زمان یونیکس (Unix time) را نشان دهد (مانند 1729181726).
packager
شناسه کاربری (User ID) موجودیتی که بسته را ساخته است. این مقدار برای جستجو و شناسایی هویت کاربرد دارد و نشاندهنده یک OpenPGP User ID[2] است. به همین ترتیب، مقدار آن یک رشته با کدگذاری UTF-8 است که بهطور مرسوم از یک نام و یک آدرس ایمیل تشکیل شده و با قالب توصیفشده در RFC 28223 هماهنگ است.
size
اندازه محتویات بسته (غیرفشرده و بازشده) بر حسب بایت. مقدار یک عدد صحیح غیرمنفی است که اندازه مطلق محتویات بسته را نشان میدهد، بهطوری که چندین فایل دارای پیوند سخت (Hardlink) تنها یک بار شمرده میشوند (مانند 181849963).
arch
معماری بسته (برای اطلاعات بیشتر به alpm-architecture مراجعه کنید). مقدار باید از مجموعه نویسههای الفبایی-عددی و ‘_’ تشکیل شده باشد (مانند x86_64 یا any).
license
مجوز یا پروانهای که برای بسته اعمال میشود. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک شناسه مجوز را نشان میدهد که رشتهای با طول غیرصفر است (مانند GPL). اگرچه به جز طول آن، هیچ محدودیت خاصی برای مقدار اعمال نمیشود، اما اکیداً توصیه میشود که از عبارات مجوز SPDX استفاده شود (مانند GPL-3.0-or-later یا Apache-2.0 OR MIT). برای اطلاعات بیشتر به SPDX License List[4] مراجعه کنید.
replaces
یک مؤلفه مجازی یا بسته دیگر که این بسته پس از نصب جایگزین آن میشود. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک alpm-package-relation از نوع replacement است (مانند example یا example=1.0.0).
group
یک رشته دلخواه که نشاندهنده یک گروه در سطح توزیع است که بسته در آن قرار دارد. گروهها به عنوان مثال توسط مدیران بسته برای دستهبندی بستهها و امکان نصب دستهجمعی آنها، یا توسط نرمافزارهای دیگر برای نمایش اطلاعات مربوط به این بستهها استفاده میشوند. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن به وسیله یک رشته UTF-8 نشان داده میشود. اگرچه استفاده از رشته UTF-8 امکانپذیر است، اما اکیداً توصیه میشود که در عوض از قالب pkgname برای این مقدار استفاده شود، زیرا مدیران بسته ممکن است از group برای نصب کل بستههای یک گروه استفاده کنند.
conflict
یک مؤلفه مجازی یا بسته دیگر که این بسته با آن تداخل دارد. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک alpm-package-relation از نوع conflict است (مانند example یا example=1.0.0).
provides
یک مؤلفه مجازی یا بسته دیگر که این بسته آن را فراهم میکند. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک alpm-package-relation از نوع provision است (مانند example یا example=1.0.0).
backup
یک مسیر فایل نسبی از فایلی در داخل بسته، که فایلی را مشخص میکند تا مدیر بسته در صورت تغییر یا حذف در طول فرآیند بهروزرسانی بسته، از آن نسخه پشتیبان تهیه کند (به فایلهای ‘.pacnew’ و ‘.pacsave’ در pacman مراجعه کنید). این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار باید یک مسیر فایل یونیکس نسبی و معتبر باشد (مانند etc/package.conf).
depend
یک وابستگی زمان اجرا برای بسته (مؤلفه مجازی یا بسته). این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک alpm-package-relation از نوع run-time dependency است (مانند example یا example=1.0.0).
optdepend
یک وابستگی اختیاری برای بسته (مؤلفه مجازی یا بسته). این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک alpm-package-relation از نوع optional dependency است (مانند example یا example: this is a description).
makedepend
یک وابستگی زمان ساخت برای بسته (مؤلفه مجازی یا بسته). این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک alpm-package-relation از نوع build dependency است (مانند example یا example=1.0.0).
checkdepend
یک وابستگی برای اجرای آزمایشهای پروژه بالادستی بسته. این کلمه کلیدی ممکن است صفر یا چند بار اختصاص یابد. مقدار آن یک alpm-package-relation از نوع test dependency است (مانند example یا example=1.0.0).
مثالها (EXAMPLES)
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 <john@example.org> 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
همچنین ببینید (SEE ALSO)
alpm-pkginfo(1), PKGBUILD(5), makepkg.conf(5), alpm-architecture(7), alpm-comparison(7), alpm-package-name(7), alpm-package-relation(7), alpm-package-version(7), alpm-pkgver(7), makepkg(8), pacman(8)
یادداشتها (NOTES)
- 1.
- printable ASCII characters
- https://en.wikipedia.org/wiki/ASCII#Printable_characters
- 2.
- OpenPGP User ID
- https://openpgp.dev/book/certificates.html#user-ids
- 3.
- RFC 2822
- https://www.rfc-editor.org/rfc/rfc2822
- 4.
- SPDX License List
- https://spdx.org/licenses
| 2024-03-04 | Pacman 6.1.0 |